1. 程式人生 > 其它 >淺析Web安全漏洞裡的X-Frame-Options、X-XSS-Protection、X-Content-Type-Options響應頭配置

淺析Web安全漏洞裡的X-Frame-Options、X-XSS-Protection、X-Content-Type-Options響應頭配置

一、X-Frame-Options

  X-Frame-Options 響應頭有三個可選的值:

DENY:頁面不能被嵌入到任何iframe或frame中;

SAMEORIGIN:頁面只能被本站頁面嵌入到iframe或者frame中;

ALLOW-FROM:頁面允許frame或frame載入。

二、X-XSS-Protection

  顧名思義,這個響應頭是用來防範XSS的。最早我是在介紹IE8的文章裡看到這個,現在主流瀏覽器都支援,並且預設都開啟了XSS保護,用這個header可以關閉它。它有幾種配置:

  0:禁用XSS保護;

  1:啟用XSS保護;

  1; mode=block:啟用XSS保護,並在檢查到XSS攻擊時,停止渲染頁面(例如IE8中,檢查到攻擊時,整個頁面會被一個#替換);

// nginx配置設定
... ...
    server {
... ...
        add_header X-XSS-Protection 1;
... ...

  HTML前端解決方法:

<meta http-equiv="X-XSS-Protection" content="1; mode=block" />

三、X-Content-Type-Options

  網際網路上的資源有各種型別,通常瀏覽器會根據響應頭的Content-Type欄位來分辨它們的型別。例如:"text/html"代表html文件,"image/png"是PNG圖片,"text/css"是CSS樣式文件。然而,有些資源的Content-Type是錯的或者未定義。這時,某些瀏覽器會啟用MIME-sniffing來猜測該資源的型別,解析內容並執行。

  例如,我們即使給一個html文件指定Content-Type為"text/plain",在IE8-中這個文件依然會被當做html來解析。利用瀏覽器的這個特性,攻擊者甚至可以讓原本應該解析為圖片的請求被解析為JavaScript。通過下面這個響應頭可以禁用瀏覽器的型別猜測行為

  開啟nginx.conf,檔案位置一般在安裝目錄 /usr/local/nginx/conf 裡。

  然後在http配置程式碼塊裡某一行新增如下語句即可

add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block
"; add_header X-Content-Type-Options "nosniff";