前言:我们在使用nginx的时候有时候为了安全的情况下,针对一些版本号进行隐藏;还有一种情况是我们针对脚本语言的编译器版本号隐藏。防止攻击者知道当前的版本号,然后拿漏洞攻击
隐藏Nginx版本号,Nginx的版本号主要在两个地方会有,一个是HTTP header,有个Server:nginx/1.x.x类似会暴露Web服务器所用软件名称以及版本号,这个也是大多数Web服务器最容易暴露版本号的地方,第二个地方是Nginx出错页面,比如404页面没有找到等,这是如果用户没有指定页面的话,那么Nginx自己的页面会有版本戳记。
不过幸运的是对于这两个地方的版本号隐藏,Nginx都提供了简单的办法一步到位,参考server_tokens。通过在配置文件的http节配置server_tokens off来达到我们目的。
Nginx配置
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的版本号,PHP容易暴露的版本号在什么地方呢?其实也是在HTTP头,以类似X-Powered-By: PHP/5.2.11这种形式存在,大家可能会想到会不会是Nginx问题,而去到Nginx里面找相关配置,呵呵,其实这个是在PHP的配置文件php.ini里改动,打开php.ini,找到下面叙述:
exposephp = On
将exposephp = On改为exposephp = Off就搞定了
当然,对于Apache服务器还有另外一个方法可以直接尝试在.htaccess文件中Header unset X-Powered-By,删除X-Powered-By节,不过我还是建议改动php.ini的exposephp。
NGINX源码编译隐藏版本号
伪装Nginx vi /src/core/nginx.h 修改其中:#define NGINX_VERSION “1.0″#define NGINX_VER “GWS/” NGINX_VERSION`重新编译nginx
以上就是伪装Nginx,隐藏Nginx、PHP版本号并提升服务器安全性全部过程。
领取专属 10元无门槛券
私享最新 技术干货