活到老学到老  

记录遇到问题的点点滴滴。

Apache、PHP 隐藏版本信息

8年前发布  · 1290 次阅读
  php  apache 

一、apache

apache 的httpd.conf 有两个配置可以控制是否显示服务器信息给用户。

对于XAMPP,这两者的配置在conf\extra\httpd-default.conf中。

ServerTokens

ServerSignature

默认条件下会把apache版本系统模块都显示出来(HTTP 返回头)

设置为:

ServerTokens Prod

ServerSignature Off

就隐藏Apache的Apache Version信息。

还有如果列举目录的话会显示域名信息(文件列表正文)
如果不想要就可以调这两个参数
ServerTokens
ServerSignature

ServerSignature On|Off|Email

ServerTokens Minimal|Prod|OS|Full


ServerTokens Prod[uctOnly]
Server sends (e.g.): Server: Apache
ServerTokens Min[imal]
Server sends (e.g.): Server: Apache/1.3.0
ServerTokens OS
Server sends (e.g.): Server: Apache/1.3.0 (Unix)
ServerTokens Full (or not specified)

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”

 

二、隐藏PHP 版本

php.ini

expose_php On
改成
expose_php Off

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