(二)內容嗅探攻擊防護 —X-Content-Type-Options


(二)內容嗅探攻擊防護—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。通過下面這個響應頭可以禁用瀏覽器的類型猜測行為:

X-Content-Type-Options: nosniff

PHP設置

header("X-Content-Type-Options:nosniff");

如果服務器發送響應頭 "X-Content-Type-Options: nosniff",則 script 和 styleSheet 元素會拒絕包含錯誤的 MIME 類型的響應。這是一種安全功能,有助於防止基於 MIME 類型混淆的***。

簡單理解為:通過設置"X-Content-Type-Options: nosniff"響應標頭,對 script 和 styleSheet 在執行是通過MIME 類型來過濾掉不安全的文件

服務器發送含有 "X-Content-Type-Options: nosniff" 標頭的響應時,此更改會影響瀏覽器的行為。

 

如果通過 styleSheet 參考檢索到的響應中接收到 "nosniff" 指令,則 Windows Internet Explorer 不會加載“stylesheet”文件,除非 MIME 類型匹配 "text/css"。

如果通過 script 參考檢索到的響應中接收到 "nosniff" 指令,則 Internet Explorer 不會加載“script”文件,除非 MIME 類型匹配以下值之一:

 

  • "application/ecmascript"

  • "application/javascript"

  • "application/x-javascript"

  • "text/ecmascript"

  • "text/javascript"

  • "text/jscript"

  • "text/x-javascript"

  • "text/vbs"

  • "text/vbscript"

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM