查看http请求的response里面的header我们会发现有server这个参数,它表示服务端使用的是什么web服务器。
例如
新浪网:
Server:nginx
开源中国:
Server:Tengine
segmentfault甚至都没有返回server!
Nginx默认是显示版本号的。这样就给人家看到你的服务器nginx的真实版本号,前些时间暴出了一些Nginx版本漏洞,就是说有些版本有漏洞,而有些版本没有。这样暴露出来的版本号就容易变成攻击者可利用的信息。所以,从安全的角度来说,隐藏版本号会相对安全些!
[root@proxy ~]# curl -i 192.168.4.5
HTTP/1.1 200 OK
Server: nginx/1.12.2
那nginx版本号可以隐藏不?其实可以的,看下面的步骤(nginx + php)
1 进入nginx配置文件的目录(此目录根据安装时决定)nginx.conf,用vim编辑打开。
[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
http {
include mime.types;
default_type application/octet-stream;
server_tokens off;
#### 在http节点下加入server_tokens off;即可
2 编辑php-fpm配置文件fastcgi.conf 和 fastcgi_params.
在没有修改之前的字段内容:fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
[root@proxy ~]# vim /usr/local/nginx/conf/fastcgi.conf
fastcgi_param SERVER_SOFTWARE nginx;
[root@proxy ~]# vim /usr/local/nginx/conf/fastcgi_param
fastcgi_param SERVER_SOFTWARE nginx;
3 重新加载nginx配置:
[root@proxy ~]# nginx -s reload
4 再次测试能够发现版本号对外已经完全隐藏了
[root@proxy ~]# curl -i 192.168.4.5
HTTP/1.1 200 OK
Server: nginx