nginx及php版本號隱藏


配置完一台服務器后,並不是就可以高枕無憂了,前不久剛剛爆發的PHP 5.3.9版本的漏洞也搞得人心惶惶,所以說經常關注安全公告並及時升級服務器也是必要的。一般來說,黑客攻擊服務器的首要步驟就是收集信息,比如說你的軟件版本,這些將成為下一步有針對性攻擊的依據。所以說一定程度的隱藏這些信息就顯得非常有必要了,本文將簡單介紹如何在網絡上隱藏Nginx版本號以及PHP的版本號。

1.隱藏Nginx版本號,Nginx的版本號主要在兩個地方會有,一個是HTTP header,有個Server:nginx/1.x.x類似會暴露Web服務器所用軟件名稱以及版本號,這個也是大多數Web服務器最容易暴露版本號的地方,第二個地方是Nginx出錯頁面,比如404頁面沒有找到等,這是如果用戶沒有指定頁面的話,那么Nginx自己的頁面會有版本戳記。

不過幸運的是對於這兩個地方的版本號隱藏,Nginx都提供了簡單的辦法一步到位,參考server_tokens。通過在配置文件的http節配置server_tokens off來達到我們目的。

 

  http {
    # ...省略一些配置
    server_tokens off;
  }

最后別忘了使用命令nginx -s reload刷新當前配置。完成后你可以查看所有頁面的響應頭或者錯誤頁,看看是不是只看到nginx字樣而看不到版本號?什么?你想連nginx也改掉?呵呵,這個恐怕就麻煩了,需要改動Nginx源代碼然后重新編譯,感興趣的童鞋可以參考《Linux/VPS環境下Nginx安全配置小記(1)》

2.隱藏PHP的版本號,PHP容易暴露的版本號在什么地方呢?其實也是在HTTP頭,以類似X-Powered-By: PHP/5.2.11這種形式存在,大家可能會想到會不會是Nginx問題,而去到Nginx里面找相關配置,呵呵,其實這個是在PHP的配置文件php.ini里改動,打開php.ini,找到下面敘述:

;;;;;;;;;;;;;;;;;
; Miscellaneous ;
;;;;;;;;;;;;;;;;;
 
; Decides whether PHP may expose the fact that it is installed on the server
; (e.g. by adding its signature to the Web server header).  It is no security
; threat in any way, but it makes it possible to determine whether you use PHP
; on your server or not.
; http://php.net/expose-php
expose_php = On

expose_php = On改為expose_php = Off就搞定了,當然,對於Apache服務器還有另外一個方法可以直接嘗試在.htaccess文件中Header unset X-Powered-By,刪除X-Powered-By節,不過我還是建議改動php.ini的expose_php。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM