Nginx隐藏Server信息和版本信息 教程

1、为什么我Nginx一定要隐藏Server信息和版本信息?

有一点常识的人都知道,当有人想攻击我们网站的时候,一般都会先做信息收集,而Nginx的Server信息和版本信息就非常的重要了。以Nnginx版本号来讲:当攻击者知道相应服务的版本号后,就可以寻找该服务相应版本的一些漏洞来入侵攻击网站。因此:我们需要隐藏这些版本号来避免一些不必要的问题!

 

2、来测试一下,如果Nginx不隐藏Server信息和版本信息是一种什么样的情况?

fujieace:~ fujieace$ curl -I http://127.0.0.1/phpinfo.php
HTTP/1.1 200 OK
Server: nginx/1.14.0
Date: Fri Oct 19 12:01:27 CST 2018
Content-Type: text/html
Connection: keep-alive
Vary: Accept-Encoding
X-Powered-By: PHP/5.6.1

从上面可以清楚的看到我们用的nginx服务,版本号是1.14.0,我们的服务器nginx和php版本都暴露了。(PHP隐藏版本信息及服务方法https://www.fujieace.com/php/expose_php.html)

 

下面我们主要来谈Nginx隐藏的方法。

 

提醒:其实,用浏览器F12调试其实也能得和上面相同的结果。

 

一、Nginx隐藏版本信息 方法

只需在 nginx.conf 里面 http 块中添加以下代码:

server_tokens off;

注意:修改成功后,一定要重启nginx。

 

二、Nginx 隐藏Server信息 方法

这个就需要重新编译ngnix了。

 

1、进入解压出来的nginx 源码目录:

cd nginx-1.14.0

 

2、修改http_header模块中的参数:

vim src/http/ngx_http_header_filter_module.c

 

static char ngx_http_server_string[] = "Server: nginx" CRLF;
static char ngx_http_server_full_string[] = "Server: " NGINX_VER CRLF;

修改成

static char ngx_http_server_string[] = "Server: X-Web" CRLF;
static char ngx_http_server_full_string[] = "Server:X-Web " CRLF;

 

3、修改完后再重新编译nginx,再启动nginx,再看header里面Server信息变成了自定义的名字,不再显示nginx相关信息了。如下图:

Nginx隐藏Server信息和版本信息

    A+
发布日期:2018年10月19日 10:47:11  所属分类:Nginx
最后更新时间:2018-10-19 13:18:25
付杰
  • ¥ 89.0元
  • 市场价:129.0元
  • ¥ 498.0元
  • 市场价:598.0元
  • ¥ 59.0元
  • 市场价:99.0元
  • ¥ 99.0元
  • 市场价:129.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: