今天發現使用站長工具或一些相關的工具可以直接查看到服務器所使用的php版本號與apache版本號了,這樣對於網站來講很不安全了,如果這些版本出現問題有些人就可以直接搞定了,下面我們看看隱藏版本的方法,可惜的是在windows下我暫時還沒找到解決辦法。
隱藏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.bKjia.c0m
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版本號的方法我暫時還沒找到,找到會在下面更新哦。