隱藏PHP版本
為了安全起見,最好還是將PHP版本隱藏,以避免一些因PHP版本漏洞而引起的攻擊。
1、隱藏PHP版本就是隱藏 “X-Powered-By: PHP/5.2.13″ 這個資訊。
方法很簡單:
編輯php.ini設定檔,修改或加入: expose_php = Off 儲存後重新啟動Nginx或Apache等相應的Web伺服器即可。
代碼如下 |
複製代碼 |
[root@bkjz /]# curl -I www.111cn.net HTTP/1.1 200 OK Server: nginx Date: Tue, 20 Jul 2010 05:45:13 GMT Content-Type: text/html; charset=UTF-8 Connection: keep-alive Vary: Accept-Encoding |
已經徹底隱藏了PHP版本。
隱藏Apache版本號碼
一般情況下,軟體的漏洞資訊和特定版本是相關的,因此,軟體的版本號碼對攻擊者來說是很有價值的。
在預設情況下,系統會把Apache版本模組都顯示出來(http返回頭資訊)。如果列舉目錄的話,會顯示網域名稱資訊(檔案清單本文),如:
代碼如下 |
複製代碼 |
[root@localhost tmp]# curl -I 192.168.80.128:88 HTTP/1.1 403 Forbidden Date: Wed, 21 Jul 2010 13:09:33 GMT Server: Apache/2.2.15 (CentOS) Accept-Ranges: bytes Content-Length: 5043 Connection: close Content-Type: text/html; charset=UTF-8 |
隱藏方法:
1、隱藏Apache版本號碼的方法是修改Apache的設定檔,如RedHat系的Linux預設是:
代碼如下 |
複製代碼 |
vim /etc/httpd/conf/httpd.conf |
分別搜尋索引鍵ServerTokens和ServerSignature,修改:
ServerTokens OS 修改為 ServerTokens ProductOnly
ServerSignature On 修改為 ServerSignature Off
2、重啟或重新載入Apache就可以了。
代碼如下 |
複製代碼 |
apachectl restart |
測試一下,如下:
代碼如下 |
複製代碼 |
[root@localhost tmp]# curl -I 192.168.80.128:88 HTTP/1.1 403 Forbidden Date: Wed, 21 Jul 2010 13:23:22 GMT Server: Apache Accept-Ranges: bytes Content-Length: 5043 Connection: close Content-Type: text/html; charset=UTF-8 |
版本號碼與作業系統資訊已經隱藏了。
3、上面的方法是預設情況下安裝的Apache,如果是編譯安裝的,還可以用修改源碼編譯的方法:
進入Apache的源碼目錄下的include目錄,然後編輯ap_release.h這個檔案,你會看到有如下變數:
代碼如下 |
複製代碼 |
#define AP_SERVER_BASEVENDOR “Apache Software Foundation” #define AP_SERVER_BASEPROJECT “Apache HTTP Server” #define AP_SERVER_BASEPRODUCT “Apache” #define AP_SERVER_MAJORVERSION_NUMBER 2 #define AP_SERVER_MINORVERSION_NUMBER 2 #define AP_SERVER_PATCHLEVEL_NUMBER 15 #define AP_SERVER_DEVBUILD_BOOLEAN 0 |
可以根據自己喜好,修改或隱藏版本號碼與名字。
在windows下隱藏apache與php版本號碼的方法我暫時還沒找到,找到會在下面更新哦。