1. 程式人生 > 其它 >Web應用漏洞-NGINX各類請求頭缺失對應配置

Web應用漏洞-NGINX各類請求頭缺失對應配置

前言

  隨著越來越多的網路訪問通過WEB介面進行操作,WEB安全已經成為網際網路安全的一個熱點,基於WEB的攻擊廣為流行,SQL注入、跨站指令碼等WEB應用層漏洞的存在使得網站淪陷、頁面篡改、網頁掛馬等攻擊行為困擾著網站管理者並威脅著網站以及直接使用者的安全。配置一些http_header,不需要改程式碼,是一種惠而不費的操作,有沒有效先配了再說吧。

1、 檢測到目標URL存在http host頭攻擊漏洞

詳細描述:

為了方便的獲得網站域名,開發人員一般依賴於HTTP Host header。例如,在php裡用_SERVER["HTTP_HOST"]。但是這個header是不可信賴的,如果應用程式沒有對host header值進行處理,就有可能造成惡意程式碼的傳入。

解決辦法:

web應用程式應該使用SERVER_NAME而不是host header。 在Apache和Nginx裡可以通過設定一個虛擬機器來記錄所有的非法host header。在Nginx裡還可以通過指定一個SERVER_NAME名單,Apache也可以通過指定一個SERVER_NAME名單並開啟UseCanonicalName選項。

# HTTP host頭攻擊的技術NGINX防護
        if ($http_Host != 'xxx.com'){
          return 403;
        }

# 匹配多個域名/IP
        set $flag 0;
        
if ($http_Host != "xxx.com") { set $flag "${flag} 1"; } if ($http_Host != "10.0.0.100") { set $flag "${flag} 2"; } if ($flag = "012") { return 403; }

2、 檢測到目標X-Content-Type-Options響應頭缺失

詳細描述:

X-Content-Type-Options HTTP 訊息頭相當於一個提示標誌,被伺服器用來提示客戶端一定要遵循在 Content-Type 首部中對 MIME 型別 的設定,而不能對其進行修改。這就禁用了客戶端的 MIME 型別嗅探行為,換句話說,也就是意味著網站管理員確定自己的設定沒有問題。 X-Content-Type-Options響應頭的缺失使得目標URL更易遭受跨站指令碼攻擊

解決辦法:

將您的伺服器配置為在所有傳出請求上傳送值為“nosniff”的“X-Content-Type-Options”頭。

# add_header X-Content-Type-Options: nosniff;
# 如果伺服器傳送響應頭 “X-Content-Type-Options: nosniff”,則 script 和 styleSheet
# 元素會拒絕包含錯誤的 MIME 型別的響應。這是一種安全功能,有助於防止基於 MIME 型別混淆的攻擊。

3、 檢測到目標X-XSS-Protection響應頭缺失

詳細描述:

HTTP X-XSS-Protection 響應頭是 Internet Explorer,Chrome 和 Safari 的一個特性,當檢測到跨站指令碼攻擊 (XSS)時,瀏覽器將停止載入頁面。 X-XSS-Protection響應頭的缺失使得目標URL更易遭受跨站指令碼攻擊。

解決辦法:

將您的伺服器配置為在所有傳出請求上傳送值為“1”(例如已啟用)的“X-XSS-Protection”頭。

# 0:# 禁用XSS保護;
# 1:# 啟用XSS保護;
# 1; # mode=block:啟用XSS保護,並在檢查到XSS攻擊時,停止渲染頁面(例如IE8中,檢查到攻擊時,整個頁面會被一個#替換);
# 瀏覽器提供的XSS保護機制並不完美,但是開啟後仍然可以提升攻擊難度,總之沒有特別的理由,不要關閉它。

# add_header X-Xss-Protection: 1;
# add_header X-Xss-Protection: mod=block;

4、 檢測到目標Content-Security-Policy響應頭缺失

詳細描述:

HTTP 響應頭Content-Security-Policy允許站點管理者控制使用者代理能夠為指定的頁面載入哪些資源。除了少數例外情況,設定的政策主要涉及指定伺服器的源和指令碼結束點。 Content-Security-Policy響應頭的缺失使得目標URL更易遭受跨站指令碼攻擊。

解決辦法:

將您的伺服器配置為傳送“Content-Security-Policy”頭。

# 要使用 CSP,只需要服務端輸出類似這樣的響應頭就行了:

# Content-Security-Policy: default-src 'self'

# default-src 是 CSP 指令,多個指令之間用英文分號分割;'self' 是指令值,多個指令值用英文空格分割。

5、 點選劫持:X-Frame-Options未配置

詳細描述:

點選劫持(ClickJacking)是一種視覺上的欺騙手段。攻擊者使用一個透明的、不可見的iframe,覆蓋在一個網頁上,然後誘使使用者在該網頁上進行操作,此時使用者將在不知情的情況下點選透明的iframe頁面。通過調整iframe頁面的位置,可以誘使使用者恰好點選在iframe頁面的一些功能性按鈕上。 HTTP 響應頭資訊中的X-Frame-Options,可以指示瀏覽器是否應該載入一個 iframe 中的頁面。如果伺服器響應頭資訊中沒有X-Frame-Options,則該網站存在ClickJacking攻擊風險。網站可以通過設定 X-Frame-Options 阻止站點內的頁面被其他頁面嵌入從而防止點選劫持.

解決辦法:

修改web伺服器配置,新增X-Frame-Options響應頭。賦值有如下三種:
1、DENY:不能被嵌入到任何iframe或者frame中。
2、SAMEORIGIN:頁面只能被本站頁面嵌入到iframe或者frame中。
3、ALLOW-FROM uri:只能被嵌入到指定域名的框架中。

# add_header X-Frame-Options:ALLOW-FROM https://tongji.baidu.com;
# add_header X-Frame-Options:DENY;

6、 檢測到目標URL啟用了不安全的HTTP方法

詳細描述:

檢測到目標Web伺服器配置成允許下列其中一個(或多個)HTTP 方法:DELETE, SEARCH,COPY,MOVE, PROPFIND, PROPPATCH, MKCOL ,LOCK ,UNLOCK 。 這些方法表示可能在伺服器上使用了 WebDAV。由於dav方法允許客戶端操縱伺服器上的檔案,如果沒有合理配置dav,有可能允許未授權的使用者對其進行利用,修改伺服器上的檔案。

解決辦法:

如果伺服器不需要支援 WebDAV,請務必禁用它。 或者為允許webdav的目錄配置嚴格的訪問許可權,如認證方法,認證需要的使用者名稱,密碼。

# dav_methods  off;

轉載自:https://www.cnblogs.com/xidxi/p/14781383.html