隐藏apache与php的版本信息

发布时间:2020-03-29编辑:脚本学堂
在网站安全配置方面,可以考虑隐藏apache和php的版本信息,不显示apache和php的版本信息,起到一定程度上的安全保护。

1,隐藏 apache 版本信息
/etc/apache2/apache2.conf 或 /etc/httpd/conf/httpd.conf
ServerTokens ProductOnly
ServerSignature Off

重启 apache
现在 http 头里面只看到:
Server: Apache

2,隐藏 PHP 版本
php.ini
expose_php On
改成
expose_php Off

重启apache后,php版本在http头中隐藏了。

详解 :
2个参数,分别为ServerTokens和ServerSignature,可以这样配置:
ServerTokens Prod
ServerSignature Off

ServerTokens
用于控制服务器是否相应来自客户端的请求,向客户端输出服务器系统类型或内置模块等重要的系统信息。 在主配置文件中提供全局控制默认阀值为"Full"(ServerTokens Full),所以,如果你的linux发行版本没有更改过这个阀值的话,所有与你的系统有关的敏感信息都会向全世界公开。比如RHEL会将该 阀值更改为"ServerTokens OS",而Debian依然使用默认的"Full"阀值
以apache-2.0.55为例,阀值可以设定为以下某项(后面为相对应的Banner Header):
 

Prod >>> Server: Apache
Major >>> Server: Apache/2
Minor >>> Server: Apache/2.0
Minimal >>> Server: Apache/2.0.55
OS >>> Server: Apache/2.0.55 (Debian)
Full (or not specified) default >>> Server: Apache/2.0.55 (Debian) PHP/5.1.2-1+b1 mod_ssl/2.0.55 OpenSSL/0.9.8b

ServerSignature
控制由系统生成的页面(错误信息,mod_proxy ftp directory listing等等)的页脚中如何显示信息。

可在全局设置文件中控制,或通过.htaccess文件控制。

默认为"off"(ServerSignature Off),有些Linux发行版本可能会打开这个选项,比如Debian在默认的虚拟主机上默认将这个选项设置为开放。
全局选项的阀值会被虚拟主机或目录单位的配置文件中的阀值所覆盖,请谨慎操作。

可用的阀值为下面所示:
Off (default): 不输出任何页脚信息 (如同Apache1.2以及更旧版本,用于迷惑)
On:输出一行关于版本号以及处于运行中的虚拟主机的ServerName (2.0.44之后的版本,由ServerTokens负责是否输出版本号)
EMail: 创建一个发送给ServerAdmin的"mailto"。

注意,以下的选项,仅是隐藏信息,对于系统或服务的安全,还有很多工作要做。