問題描述
我正在使用 OWASP ZAP 在本地主機上進行一些滲透測試,並且不斷報告此訊息:
The Anti-MIME-Sniffing header X-Content-Type-Options was not set to ‘nosniff’
This check is specific to Internet Explorer 8 and Google Chrome. Ensure each page sets a Content-Type header and the X-CONTENT-TYPE-OPTIONS if the Content-Type header is unknown
我不知道這是什麼意思,我在網上找不到任何東西。我試過新增:
<meta content="text/html; charset=UTF-8; X-Content-Type-Options=nosniff" http-equiv="Content-Type" />
但我仍然得到警報。
設定引數的正確方法是什麼?
最佳解決方案
它阻止瀏覽器進行 MIME-type 嗅探。大多數瀏覽器現在都在執行此標題,包括 Chrome /Chromium,Edge,IE> = 8.0,Firefox> = 50 和 Opera> = 13 。
Sending the new X-Content-Type-Options response header with the value nosniff will prevent Internet Explorer from MIME-sniffing a response away from the declared content-type.
編輯:
哦,這是一個 HTTP 標頭,而不是 HTML 元標記選項。
參見:http://msdn.microsoft.com/en-us/library/ie/gg622941(v=vs.85).aspx
次佳解決方案
# prevent mime based attacks
Header set X-Content-Type-Options "nosniff"
此標頭可防止基於”mime” 的攻擊。此標題可防止 MIME-sniffing 的 Internet Explorer 遠離宣告的 content-type,因為標題指示瀏覽器不要覆蓋響應內容型別。使用 nosniff 選項,如果伺服器說內容是 text /html,瀏覽器會將其顯示為 text /html 。
第三種解決方案
瀏覽器可以使用 content or MIME sniffing 來覆蓋響應 Content-Type 標頭來使用隱式內容型別來猜測和處理資料。雖然這在一些情況下可以方便,但它也可能導致以下列出的一些攻擊。將 X-Content-Type-Options 設定為 nosniff 將導致 Internet Explorer 9,Chrome 和 Safari 使用提供的 Content-Type,而不將內容解釋為不同的內容型別。 Firefox 正在考慮這一點。
-
MIME Confusion Attack 可以透過使用者生成的內容網站進行攻擊,允許使用者上傳惡意程式碼,然後由瀏覽器執行,這些瀏覽器會使用備用內容型別來解釋檔案,例如
application/javascript與text/plain。託管使用者生成內容的站點應使用此標頭來保護其使用者。這是由 VeraCode 和 OWASP 提及的,這說明:這減少了暴露於 drive-by 下載攻擊和為使用者上傳的內容的站點,透過聰明的命名,可以將 MSIE 視為可執行或動態 HTML 檔案。 -
Unauthorized Hotlinking 也可以透過
Content-Type嗅探啟用。透過熱點連結到具有一個目的的資源的站點,例如檢視,應用程式可以依靠 content-type 嗅探,並在網站上產生大量流量,用於另一目的,可能會違反其服務條款,例如。 GitHub 顯示 JavaScript 程式碼供檢視,但不能執行:一些令人厭惡的 non-human 使用者 (即計算機) 已經透過原始檢視功能採用了”hotlinking” 資源 – 將原始 URL 用作<script>或<img>標記的src。問題是這些不是靜態資產。原始檔案檢視與 Rails 應用程式中的任何其他檢視一樣,必須在被返回給使用者之前呈現。這很快就加劇了對效能的巨大損失。過去,我們被迫阻止以這種方式提供的流行內容,因為它對我們的伺服器造成了過度的壓力。
第四種方案
對於 Microsoft IIS 伺服器,您可以透過 web.config 檔案啟用此標題:
<system.webServer>
<httpProtocol>
<customHeaders>
<remove name="X-Content-Type-Options"/>
<add name="X-Content-Type-Options" value="nosniff"/>
</customHeaders>
</httpProtocol>
</system.webServer>
你完成了
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。