细节决定成败,服务器的安全也是这样!隐藏或者修改nginx的信息,不是什么炫酷的技能,只是nginx设置中的一个小小的细节。 Http中的Nginx版本信息查看http请求的response里面的header我们会发现有server这个参数,它表示服务端使用的是什么web服务器。 例如 新浪网:
开源中国:
segmentfault甚至都没有返回server! 很多网站不止返回了nginx而且还带了版本号,而像版本号这种东西完全没必要暴露给用户,我们可以通过设置server_tokens off隐藏掉版本号:
PHP中的Nginx版本信息即使把server_tokens设为了off,也并不代表nginx的版本号是完全不可见的~
通过上图我们可以看到虽然http返回的header里面已经没有了版本号,但是php里面还是可以获取到nginx的版本号的,如果要对PHP也隐藏掉版本号就需要修改fastcgi.conf这个文件了: 去掉后面的 /$nginx_version 或者 直接注释掉这一行!
修改或者隐藏Nginx信息如果我希望nginx也不显示呢?或者修改nginx为Tengine呢? 这个时候就要修改nginx源码文件src/core/nginx.h,例如我把nginx修改问tengine:
也可以把NGINX_VER 赋值为空,这样Http 返回的header里面的server也为空了! 需要注意的是,如果server_tokens设置为off,即使源码NGINX_VER 赋值为空或者改成其他值,返回的server还是nginx,只是不显示版本号! |