梦想还是要有的, 万一实现了呢?

Apache、Nginx、PHP隐藏版本号

Linux 拈花古佛 1521℃

软件Bug是和版本相关的,所以把软件的版本号暴露出去对黑客来说是有意义的,所以一般应该隐藏版本号。

默认,Apache、Nginx、PHP都会发送自己的版本号,如下:

以上信息暴露了使用的是Apache和PHP,版本号分别是2.4.2和5.3.14,它们安装在类Unix系统上。

以上信息暴露了使用的是Nginx和PHP,版本号分别是1.0.12和5.3.14。

对于Apache,如果要隐藏版本号可以在配置文件中添加(如果存在则修改)如下指令:
ServerTokens Prod
ServerSignature Off
这样版本号就会被隐藏,但是还是会出现Apache。关于ServerTokens指令,可以查看http://httpd.apache.org/docs/2.4/mod/core.html#servertokens,这里有非常详细的示例。

如果要把Apache也修改掉,必须是修改源代码,然后重新编译安装了,进入Apache的源码目录下的include目录,然后编辑ap_release.h这个文件:

根据需要修改。

对于Nginx,需要在配置文件的http{}段里面加入“server_tokens off;”,这样Nginx就不广播自己的版本号了,但是由于Nginx是通过FastCGI模式来进行的,在默认的FastCGI配置文件中默认把版本号传递给PHP进程,所以在运行PHP程序时它还是暴露了Nginx的版本号。

这里甚至可以把nginx修改成其它的期望字符串。

对于PHP,就是要去掉X-Powered-By PHP/5.2.13,编辑php.ini配置文件,修改或加入: expose_php = Off

转载请注明:拈花古佛 » Apache、Nginx、PHP隐藏版本号

喜欢 (0)or分享 (0)