隱藏web服務的頭信息

一、隱藏nginx頭信息

什麼是header信息?header信息是訪客訪問你的網站時,web服務返回給客戶端的一段信息,包含了網頁的一些基本情況。那麼爲什麼要修改 header信息呢?主要是爲了防止被居心不良的人利用來獲取漏洞信息,例如:通過最最簡單的獲取header信息發現你的web服務器版本是 nginx/0.7.60,現在又已知這個版本的nginx有某個漏洞,那麼就可以利用這個漏洞來***你了。互聯網信息更新非常快,web服務程序的更新 也是很頻繁,我們很多時候由於種種原因不能及時打上補丁,對服務器安全很不利,如果修改header信息達到隱藏web服務器版本的效果,就可以在某種程 度上消除一些隱患。

nginx的header信息修改需要修改源碼,因此必須在編譯前作修改,如果已經編譯了,只能修改源碼後重新編譯。
1、修改src/core/nginx.h,將
#define NGINX_VERSION "1.1.1"
#define NGINX_VER "apache/" NGINX_VERSION中的信息修改掉。
2、修改src/http/ngx_http_header_filter_module.c,將

static char ngx_http_server_string[] = "Server: apache" CRLF;
static char ngx_http_server_full_string[] = "Server: " NGINX_VER CRLF;中的信息修改掉。
3、修改nginx-0.7.30/src/http/ngx_http_special_response.c
static u_char ngx_http_error_full_tail[] =
"<center> "NGINX_VER" </center>" CRLF
"<hr><center>****http://www.linuxtone.org****</center>" CRLF
"</body>" CRLF
"</html>" CRLF
;
static u_char ngx_http_error_tail[] =
"<hr><center>LTWS</center>" CRLF
"</body>" CRLF
"</html>" CRLF
;
如果要修改探針中顯示的web服務軟件信息,就修改nginx安裝目錄中conf/fcgi.conf,將
fastcgi_param SERVER_SOFTWARE nginx;中的信息修改掉。這個是配置文件,是在編譯之後修改的。

我寫了幾句命令,可以直接在shell裏運行修改掉文件:
sed -i 's:#define NGINX_VERSION "0.7.64":#define NGINX_VERSION "1.0":g' /usr/local/src/nginx-0.7.64/src/core/nginx.h
sed -i 's:#define NGINX_VER "nginx/" NGINX_VERSION:#define NGINX_VER "XXXserver/" NGINX_VERSION:g' /usr/local/src/nginx-0.7.64/src/core/nginx.h
sed -i 's#"Server: nginx"#"Server: XXXserver"#' /usr/local/src/nginx-0.7.64/src/http/ngx_http_header_filter_module.c
改的就是上面說的三個地方,將nginx/0.7.64改成XXXserver/1.0,要用的話需要自己修改源碼包存放路徑、安裝後文件的路徑和要替換的nginx版本號。


2、隱藏php版本信息

下面對php的配置文件php.ini進行配置
默認情況下
expose_php = On
將其改爲
expose_php = Off
爲什麼,可以看這段解釋
; Decides whether PHP may expose the fact that it is installed on the server
; (e.g. by adding its signature to the Web server header). It is no security
; threat in any way, but it makes it possible to determine whether you use PHP
; on your server or not.
然後禁止一些涉及php安全的函數
disable_functions = phpinfo, get_cfg_var //禁止phpinfo和get_cfg_var等函數
display_errors = Off //禁止爆出錯誤
allow_url_fopen = Off //這個關閉,就沒有辦法取遠程內容了,但是可以用變通,用curl遠程讀取的方法做到
safe_mode = On //開啓安全模式,這個開了,可能會有些php功能沒辦法使用了無論如何,還是要我們的程序設計的完美,一般來說,單純更具對系統***很難,如果是程序有漏洞,那***就簡單了。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章