什么是“X-Content-Type-Options=nosniff”?

新手上路,请多包涵

我正在使用 OWASP ZAP 在我的本地主机上进行一些渗透测试,它不断报告此消息:

Anti-MIME-Sniffing 标头 X-Content-Type-Options 未设置为“nosniff”

此检查特定于 Internet Explorer 8 和 Google Chrome。如果 Content-Type 标头未知,请确保每个页面都设置了 Content-Type 标头和 X-CONTENT-TYPE-OPTIONS

我不知道这是什么意思,我在网上找不到任何东西。我尝试添加:

 <meta content="text/html; charset=UTF-8; X-Content-Type-Options=nosniff" http-equiv="Content-Type" />

但我仍然收到警报。

设置参数的正确方法是什么?

原文由 Koffeehaus 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.6k
2 个回答

它阻止浏览器进行 MIME 类型的嗅探。大多数浏览器现在都遵守此标头,包括 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

发送具有值 nosniff 的新 X-Content-Type-Options 响应标头将阻止 Internet Explorer 从 MIME 嗅探远离声明的内容类型的响应。

编辑:

哦,那是 HTTP 标头,而不是 HTML 元标记选项。

另请参阅:http: //msdn.microsoft.com/en-us/library/ie/gg622941 (v=vs.85).aspx

原文由 Remi Gacogne 发布,翻译遵循 CC BY-SA 3.0 许可协议

描述

将服务器的 X-Content-Type-Options HTTP 响应标头设置为 nosniff 指示浏览器禁用用于覆盖响应的 内容或 MIME 嗅探 Content-Type 并使用 to 猜测标头处理数据隐式内容类型。虽然这在某些情况下很方便,但也可能导致下面列出的一些攻击。配置您的服务器以返回 X-Content-Type-Options HTTP 响应标头设置为 nosniff 将指示支持 MIME 嗅探的浏览器使用服务器提供的 Content-Type 作为不同的内容类型。

浏览器支持

X-Content-Type-Options HTTP 响应标头在 Chrome、Firefox 和 Edge 以及其他浏览器中受支持。最新的浏览器支持可在 Mozilla 开发人员网络 (MDN) 的 X-Content-Type-Options 浏览器兼容性表中获得:

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options

反击攻击

  1. MIME 混淆攻击 允许用户上传恶意代码,然后由浏览器执行,从而通过用户生成的内容站点进行攻击,浏览器将使用替代内容类型解释文件,例如隐式 application/javascript 与显式 text/plain 。这可能导致 “偷渡式下载”攻击,这是网络钓鱼的常见攻击媒介。托管用户生成内容的站点应使用此标头来保护其用户。 VeraCodeOWASP 提到了这一点,其中说明如下:

这减少了路过式下载攻击和为用户上传的内容提供服务的站点的风险,这些内容通过巧妙的命名可以被 MSIE 视为可执行文件或动态 HTML 文件。

  1. 未经授权 的热链接也可以通过 Content-Type 嗅探启用。通过出于一种目的(例如查看)热链接到具有资源的网站,应用程序可以依赖内容类型嗅探并在网站上产生大量流量用于可能违反其服务条款的另一目的,例如 GitHub 显示 JavaScript 代码以供查看,但不是为了执行:

一些讨厌的非人类用户(即计算机)已经通过原始视图功能“热链接”资产 - 使用原始 URL 作为 src <script><img> 标签。问题是这些不是静态资产。与 Rails 应用程序中的任何其他视图一样,原始文件视图必须在返回给用户之前呈现。这很快就会对性能造成很大的影响。过去,我们被迫阻止以这种方式提供的流行内容,因为它会给我们的服务器带来过大的压力。

原文由 Grokify 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题