nginx隱藏版本信息
2024-06-28 16:00:37
供稿:網友
1.源碼編譯安裝一份nginxtar xzf nginx-1.11.9.tar.gz cd nginx-1.11.9./configure --PRefix=/usr/local/nginxmake && make install2.啟動nginx/usr/local/nginx/sbin/nginx 3.查看nginx的版本信息curl -I 192.168.146.134 #ip改為你自己的如果nginx安裝正確,并正常啟動會看到下面的信息:HTTP/1.1 200 OKServer: nginx/1.11.9Date: Sun, 05 Feb 2017 07:51:01 GMTContent-Type: text/htmlContent-Length: 612Last-Modified: Sun, 05 Feb 2017 07:48:23 GMTConnection: keep-aliveETag: "5896d8c7-264"Accept-Ranges: bytes斜體字部分標明了你所用的WEB服務器的名稱和版本信息,在生產環境中暴露這些信息是不安全的。通過兩種方式對上述信息進行隱藏:一是在配置文件中加入server_tokens off;參數禁止版本信息泄漏:再次查看web server版本信息HTTP/1.1 200 OKServer: nginxDate: Sun, 05 Feb 2017 08:05:33 GMTContent-Type: text/htmlContent-Length: 612Last-Modified: Sun, 05 Feb 2017 07:48:23 GMTConnection: keep-aliveETag: "5896d8c7-264"Accept-Ranges: bytes這種情況下只能隱藏版本,不能隱藏文件名。第二種辦法是在編譯的時候把源文件里的版本信息更改一下,編譯完后顯示的是你修改的內容。修改源碼包里的三個文件:1.src/core下的nginx.h文件#define nginx_version 100011#define NGINX_VERSION "7.89"#define NGINX_VER "GWS/" NGINX_VERSION2.src/http下的ngx_http_header_filter_module.c文件static char ngx_http_server_string[] = "Server: GWS" CRLF;3.src/http下的ngx_http_special_response.c文件 static u_char ngx_http_error_tail[] ="<hr><center>GWS</center>" CRLF重新編譯nginx:make clean ./configure --prefix=/usr/local/nginxmake && make install重新啟動nginx后再次查看一下HTTP/1.1 200 OKServer: GWSDate: Sun, 05 Feb 2017 08:33:58 GMTContent-Type: text/htmlContent-Length: 612Last-Modified: Sun, 05 Feb 2017 08:24:02 GMTConnection: keep-aliveETag: "5896e122-264"Accept-Ranges: bytesserver的輸出內容變成了我自己改的名稱。