隐藏Nginx和PHP版本号

隐藏Nginx版本号,Nginx的版本号主要在两个地方会有,一个是HTTP header,有个Server:nginx/1.x.x类似会暴露Web服务器所用软件名称以及版本号,这个也是大多数Web服务器最容易暴露版本号的地方,第二个地方是Nginx出错页面,比如404页面没有找到等,这是如果用户没有指定页面的话,那么Nginx自己的页面会有版本戳记。

不过幸运的是对于这两个地方的版本号隐藏,Nginx都提供了简单的办法一步到位,参考server_tokens。通过在配置文件的http节配置server_tokens off来达到我们目的。

http {  
    # ...省略一些配置
    server_tokens off; 
    }

接下来:

vim /usr/local/nginx/conf/fastcgi_params  
将里面的
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;  
修改为:
fastcgi_param SERVER_SOFTWARE nginx;  
最后别忘了使用命令nginx -s reload刷新当前配置。。

隐藏PHP的版本号,PHP容易暴露的版本号在什么地方呢?其实也是在HTTP头,以类似X-Powered-By: PHP/5.2.11这种形式存在,大家可能会想到会不会是Nginx问题,而去到Nginx里面找相关配置,呵呵,其实这个是在PHP的配置文件php.ini里改动,打开php.ini,找到下面叙述:
exposephp = On
将expose
php = On改为exposephp = Off就搞定了,当然,对于Apache服务器还有另外一个方法可以直接尝试在.htaccess文件中Header unset X-Powered-By,删除X-Powered-By节,不过我还是建议改动php.ini的exposephp。

下面是nginx源码重新编译,隐藏nginx及版本号:

伪装Nginx
vi /src/core/nginx.h  
修改其中:
#define NGINX_VERSION “1.0″
#define NGINX_VER “GWS/” NGINX_VERSION`
重新编译nginx

以上就是伪装Nginx,隐藏Nginx、PHP版本号并提升服务器安全性全部过程。

郝先生

继续阅读此作者的更多文章