隐藏apache和php的版本信息

一些简单的方法可以帮助隐藏Apache和PHP信息,这样做可以提高攻击者发现系统弱点的难度。
一般而言,通过隐藏的手段提高安全性被认为是作用不大的做法。但某些情况下,尽可能多的增加一份安全性都是值得的。

PHP:
修改php.ini文件的以下参数

expose_php Off

Apache:
修改httpd.conf或apache.conf文件的以下参数

ServerTokens ProductOnly
ServerSignature Off

重启Apache后,在http文件头中Server的信息变为了”Apache”,而PHP的版本信息(X-Powered-By)直接被隐藏掉了。

参考资料:
http://www.php.net/manual/en/security.hiding.php
http://www.if-not-true-then-false.com/2009/howto-hide-and-modify-apache-server-information-serversignature-and-servertokens-and-hide-php-version-x-powered-by/

详解 :
ServerTokens
用于配置服务器的HTTP响应头,有以下几个值,后面为响应头显示的结果:
Prod (or ProductOnly) -> Server: Apache
Major -> Server: Apache/2
Minor -> Server: Apache/2.2
Min (or Minimal) -> Server: Apache/2.2.15
OS -> Server: Apache/2.2.15 (CentOS)
Full (or not specified) -> Apache/2.2.15 (CentOS) DAV/2 mod_fastcgi/2.4.6 Phusion_Passenger/3.0.19 SVN/1.6.11

ServerSignature
用于控制显示服务器生成的文档页脚,比如404 page, mod_proxy ftp directory listing等等:
Off (default): 不输出任何页脚信息 (如同Apache1.2以及更旧版本,用于迷惑)
On: 输出一行关于版本号以及处于运行中的虚拟主机的ServerName (2.0.44之后的版本,由ServerTokens负责是否输出版本号)
EMail: 创建一个发送给ServerAdmin的”mailto”链接