解决HTTP头信息泄露Nginx版本信息问题
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
使用Nginx部署应用程序,存在一个http头文件信息披露漏洞,请求中默认会返回Nginx版本信息,攻击者可以根据版本号来了解相关漏洞并进行针对性攻击。
有三种方法: 第一种是修改配置文件; 第二种是修改源文件,需要重新编译nginx; 第三种是使用 more_clear_headers 模块,需要重新编译nginx。 方法1:使用server_tokens off 配置,可以用来隐藏nginx版本号信息。 打开nginx.conf配置文件,将server_tokens off;添加在http { … } 配置块内;默认无该配置项,需要手动添加。 配置完成后,重新加载配置nginx -s reload; 在Nginx中,server_tokens指令用于控制是否在响应头中显示 Nginx 的版本号。然而,即使将 server_tokens设置为 off,Nginx 仍然会显示 Server: nginx,只是不会显示版本号。 方法2:修改源码中web服务器所使用的nginx的名称和版本信息 第一种方法只能屏蔽版本号信息,无法屏蔽nginx名称,想要屏蔽服务名称的话需要对源码进行修改。 需要修改如下三个文件 ./src/core目录下的nginx.h文件,将NGINX_VERSION值改成1.0.0.0;NGINX_VER值改成webserver ![]() ./src/http目录下的ngx_http_header_filter_module.c文件,将nginx改成webserver; ![]() ./src/http目录下的ngx_http_special_response.c文件,将将nginx改成webserver; ![]() 修改完成后重新编译;此时http头文件中server值显示的是webserver; 方法3:使用 ngx_http_headers_more_module是一个第三方模块,允许你更灵活地操作 HTTP 响应头。通过这个模块,你可以完全清除 Server响应头。 下载headers-more-nginx-module-0.33模块,重新编译nginx ![]() 在Nginx 配置文件中,使用 more_clear_headers指令清除 Server响应头; ![]() 重新加载配置,nginx -s reload,头文件信息中清除了server响应头; ![]() 以上三种方法,只有方法3清除http头文件信息中server响应头,可以彻底杜绝信息泄露问题。 该文章在 2025/9/2 12:46:27 编辑过 |
关键字查询
相关文章
正在查询... |