隐藏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 |
可以根据自己喜好,修改或隐藏版本号与名字。
在windows下隐藏apache与php版本号的方法我暂时还没找到,找到会在下面更新哦。