X-Frame-Options,X-XSS-Protection,X-Content-Type-Options

X-Frame-Options

X-Frame-Options HTTP 響應頭是用來給瀏覽器指示容許一個頁面能否在 <frame><iframe>或者 <object> 中展示的標記。網站可使用此功能,來確保本身網站的內容沒有被嵌到別人的網站中去,也從而避免了點擊劫持 (clickjacking) 的攻擊。javascript

使用 X-Frame-Options

X-Frame-Options 有三個值:css

DENY
表示該頁面不容許在 frame 中展現,即使是在相同域名的頁面中嵌套也不容許。
SAMEORIGIN
表示該頁面能夠在相同域名頁面的 frame 中展現。
ALLOW-FROM uri
表示該頁面能夠在指定來源的 frame 中展現。

換一句話說,若是設置爲 DENY,不光在別人的網站 frame 嵌入時會沒法加載,在同域名頁面中一樣會沒法加載。另外一方面,若是設置爲 SAMEORIGIN,那麼頁面就能夠在同域名頁面的 frame 中嵌套。html

配置 IIS

配置 IIS 發送 X-Frame-Options 響應頭,添加下面的配置到 Web.config 文件中:java

<system.webServer>
  ...

  <httpProtocol>
    <customHeaders>
      <add name="X-Frame-Options" value="SAMEORIGIN" />
    </customHeaders>
  </httpProtocol>

  ...
</system.webServer>

結果

在 Firefox 嘗試加載 frame 的內容時,若是 X-Frame-Options 響應頭設置爲禁止訪問了,那麼 Firefox 會用 about:blank 展示到 frame 中。也許從某種方面來說的話,展現爲錯誤消息會更好一點。web

 

X-XSS-Protection

 HTTP X-XSS-Protection 響應頭是Internet Explorer,Chrome和Safari的一個功能,當檢測到跨站腳本攻擊 (XSS)時,瀏覽器將中止加載頁面。雖然這些保護在現代瀏覽器中基本上是沒必要要的,當網站實施一個強大的Content-Security-Policy來禁用內聯的JavaScript ('unsafe-inline')時, 他們仍然能夠爲尚不支持 CSP 的舊版瀏覽器的用戶提供保護。瀏覽器

語法

X-XSS-Protection: 0
X-XSS-Protection: 1
X-XSS-Protection: 1; mode=block
X-XSS-Protection: 1; report=<reporting-uri>
0
禁止XSS過濾。
1
啓用XSS過濾(一般瀏覽器是默認的)。 若是檢測到跨站腳本攻擊,瀏覽器將清除頁面(刪除不安全的部分)。
1;mode=block
啓用XSS過濾。 若是檢測到攻擊,瀏覽器將不會清除頁面,而是阻止頁面加載。
1; report=<reporting-URI>  (Chromium only)
  啓用XSS過濾。 若是檢測到跨站腳本攻擊,瀏覽器將清除頁面並使用CSP  report-uri指令的功能發送違規報告。

X-Content-Type-Options

 X-Content-Type-Options 響應首部至關於一個提示標誌,被服務器用來提示客戶端必定要遵循在 Content-Type 首部中對  MIME 類型 的設定,而不能對其進行修改。這就禁用了客戶端的 MIME 類型嗅探行爲,換句話說,也就是意味着網站管理員肯定本身的設置沒有問題。安全

語法

X-Content-Type-Options: nosniff

指令

nosniff
下面兩種狀況的請求將被阻止:
  • 請求類型是"style" 可是 MIME 類型不是 "text/css",
  • 請求類型是"script" 可是 MIME 類型不是  JavaScript MIME 類型
相關文章
相關標籤/搜索