隱藏web服務的頭資訊

來源:互聯網
上載者:User

標籤:伺服器安全   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功能沒辦法使用了無論如何,還是要我們的程式設計的完美,一般來說,單純更具對系統攻擊很難,如果是程式有漏洞,那攻擊就簡單了。


本文出自 “nirvana” 部落格,請務必保留此出處http://ja5on.blog.51cto.com/8521911/1407716

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.