什么是“X
我正在使用OWASP ZAP对本地主机进行一些渗透测试,并持续报告此消息:
反MIME嗅探头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" />
但我仍然得到警报。
什么是设置参数的正确方法?
它可以防止浏览器进行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
# prevent mime based attacks
Header set X-Content-Type-Options "nosniff"
这个头可以防止“基于MIME”的攻击。 此标头可防止Internet Explorer从MIME嗅探来自声明的内容类型的响应,因为标头指示浏览器不要覆盖响应内容类型。 使用nosniff选项,如果服务器说内容是text / html,浏览器会将其呈现为text / html。
http://stopmalvertising.com/security/securing-your-website-with-.htaccess/.htaccess-http-headers.html
将服务器的HTTP响应X-Content-Type-Options
标头设置为nosniff
指示浏览器禁用内容或MIME嗅探,该内容或MIME嗅探用于覆盖响应Content-Type
标头,以使用隐式内容类型来猜测和处理数据。 虽然在某些情况下这可能很方便,但它也可能导致下面列出的一些攻击。 配置服务器以将X-Content-Type-Options
HTTP响应头设置为nosniff
将指示支持MIME嗅探的浏览器使用服务器提供的Content-Type
而不是将内容解释为不同的内容类型。
浏览器支持
Chrome,Firefox和Edge以及其他浏览器都支持X-Content-Type-Options
。 Mozilla开发者网络(MDN)X-Content-Type-Options的浏览器兼容性表提供了最新的浏览器支持:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options
攻击反击
MIME混淆攻击允许用户上传恶意代码,然后由浏览器执行,这些浏览器将使用替代内容类型解释文件,例如隐式application/javascript
与显式text/plain
,从而启用用户生成的内容站点的攻击。 这可能会导致“驱动式下载”攻击,这是网络钓鱼的常见攻击媒介。 托管用户生成内容的网站应使用此标头来保护其用户。 VeraCode和OWASP提到了以下内容:
这可以减少遭遇驱动下载攻击的风险,以及为用户上传内容提供服务的站点,通过巧妙的命名,MSIE可将其视为可执行或动态HTML文件。
未经授权的盗链也可以通过Content-Type
嗅探来启用。 通过将资源链接到具有某种用途的网站(例如查看),应用程序可以依靠内容类型嗅探并在网站上生成大量流量,以用于违反其服务条款的其他目的,例如,GitHub显示JavaScript代码以供查看,但不是为了执行:
一些讨厌的非人类用户(即计算机)通过原始视图功能将资源“热链接” - 使用原始URL作为<script>
或<img>
标签的src
。 问题是这些不是静态资产。 原始文件视图与Rails应用中的任何其他视图一样,必须在返回给用户之前进行渲染。 这很快就会增加性能。 在过去,我们被迫以这种方式阻止流行的内容,因为它给我们的服务器带来了过大的压力。
上一篇: What is "X
下一篇: Using Node.JS, how do I read a JSON object into (server) memory?