首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Nginx 版本號偽裝與隱藏:修改源碼重編譯實現任意 Web Server 偽裝

     編輯:Java 綜合教學

三大修改點(編譯前修改)

1. 核心版本字符串

文件:src/core/nginx.h

#define NGINX_VERSION "1.4.7"
#define NGINX_VER "nginx/" NGINX_VERSION

修改為:

#define NGINX_VERSION "1.4.7"
#define NGINX_VER "jdws/" NGINX_VERSION  // 偽裝為任意名稱

此處修改通常已足夠生效。

2. HTTP 響應頭 Server 字段

文件:src/http/ngx_http_header_filter_module.c

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

修改為:

static char ngx_http_server_string[] = "Server: jdws" CRLF;

3. 錯誤頁面底部標識

文件:src/http/ngx_http_special_response.c

static u_char ngx_http_error_tail[] =
    "<hr><center>nginx</center>" CRLF
    "</body>" CRLF "</html>" CRLF;

修改為:

static u_char ngx_http_error_tail[] =
    "<hr><center>jdws</center>" CRLF
    "</body>" CRLF "</html>" CRLF;

重新編譯生效

./configure --prefix=/usr/local/nginx
make && make install
/usr/local/nginx/sbin/nginx -s reload

隱藏版本號(無需改源碼)

nginx.conf 中 http 塊添加:

http {
    server_tokens off;
}

效果對比

配置響應頭 Server錯誤頁底部
默認nginx/1.4.7nginx
修改源碼jdws/1.4.7jdws
server_tokens offnginxnginx(版本號隱藏)
源碼修改 + server_tokens offjdwsjdws

注意事項

  • 開啟 server_tokens off 後,響應頭僅顯示 Server: nginx(或偽裝名),版本號隱藏
  • 錯誤頁底部文本受 ngx_http_error_tail 控制,server_tokens off 不影響
  • 安全加固建議:偽裝名稱 + 隱藏版本號 雙重防護
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved