問題描述

我正在使用 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 。

https://blogs.msdn.com/b/ie/archive/2008/09/02/ie8-security-part-vi-beta-2-update.aspx?Redirected=true

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 。

http://stopmalvertising.com/security/securing-your-website-with-.htaccess/.htaccess-http-headers.html

第三種解決方案

瀏覽器可以使用 content or MIME sniffing 來覆蓋響應 Content-Type 標頭來使用隱式內容類型來猜測和處理數據。雖然這在一些情況下可以方便,但它也可能導致以下列出的一些攻擊。將 X-Content-Type-Options 設置為 nosniff 將導致 Internet Explorer 9,Chrome 和 Safari 使用提供的 Content-Type,而不將內容解釋為不同的內容類型。 Firefox 正在考慮這一點。

  1. MIME Confusion Attack 可以通過用户生成的內容網站進行攻擊,允許用户上傳惡意代碼,然後由瀏覽器執行,這些瀏覽器會使用備用內容類型來解釋文件,例如 application/javascripttext/plain 。託管用户生成內容的站點應使用此標頭來保護其用户。這是由 VeraCodeOWASP 提及的,這説明:這減少了暴露於 drive-by 下載攻擊和為用户上傳的內容的站點,通過聰明的命名,可以將 MSIE 視為可執行或動態 HTML 文件。

  2. 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇