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版本都暴露了。

下面我们主要来谈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信息和版本信息

 

返回首页

赞赏

微信赞赏支付宝赞赏

Nginx

yum安装nginx服务

2019-12-2 11:31:54

Nginx

Nginx限制请求数和限制连接数

2020-1-21 12:05:37

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索