解決HTTP頭信息泄露Nginx版本信息問題
當前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
使用Nginx部署應用程序,存在一個http頭文件信息披露漏洞,請求中默認會返回Nginx版本信息,攻擊者可以根據(jù)版本號來了解相關(guān)漏洞并進行針對性攻擊。
有三種方法: 第一種是修改配置文件; 第二種是修改源文件,需要重新編譯nginx; 第三種是使用 more_clear_headers 模塊,需要重新編譯nginx。 方法1:使用server_tokens off 配置,可以用來隱藏nginx版本號信息。 打開nginx.conf配置文件,將server_tokens off;添加在http { … } 配置塊內(nèi);默認無該配置項,需要手動添加。 配置完成后,重新加載配置nginx -s reload; 在Nginx中,server_tokens指令用于控制是否在響應頭中顯示 Nginx 的版本號。然而,即使將 server_tokens設(shè)置為 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 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |