Nemo

Nemo 关注TA

路漫漫其修远兮,吾将上下而求索。

Nemo

Nemo

关注TA

路漫漫其修远兮,吾将上下而求索。

  •  普罗旺斯
  • 负责帅就完事了
  • 写了1,493,291字

该文章投稿至Nemo社区   编程综合  板块 复制链接


隐藏nginx返回的版本信息

发布于 2018/02/22 16:30 4,166浏览 2回复 845

默认情况下,nginx代理的服务会把自己的版本信息给返回。

一些情况下,这点是比较危险的。低版本的nginx可能会有一些漏洞,换句话说,知道一台服务器使用的服务是nginx以及它的nginx版本,那么就可以直接查看该服务器的一些相关漏洞了。

目前link-nemo使用的也是nginx做了一些相应的代理操作。

如果需要隐藏版本号,很简单,只需要在配置中的http中添加server_tokens off

http {
        ...
        server_tokens off;
        ...
}

这样nginx返回的信息中就不会有版本号了。

其他一些基于nginx的web容器,类似于openresty,会默认把nginx的标志也给去除。

这里查了下,nginx大致有两种方案可以达到相应的目的:

1、使用headers-more-nginx-module模块:

项目地址是:https://github.com/openresty/headers-more-nginx-module

2、修改nginx源码:

 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-Nemo-Web" CRLF;
static char ngx_http_server_full_string[] = "Server:X-Nemo-Web " CRLF;

然后重新编译,重载服务后即可。


来两张网络上的图对比修改前后:

前:

header-1

后:

header-2

可以看到Server信息已经被修改了。


点赞(0)
点了个评