MIME 类型验证

X-Content-Type-Options 标头告知浏览器除非服务器指示正确的 MIME 类型,否则不要加载脚本和样式表。

问题

如果没有正确的 MIME 类型验证,浏览器可能会错误地将非脚本和非样式表文件检测为脚本或样式表。此错误允许潜在的恶意文件通过 <script><link> 元素加载,作为跨站点脚本 (XSS) 攻击的一部分。

解决方案

所有站点必须设置 X-Content-Type-Options 标头,其值为 nosniff,并为其提供的文件设置适当的 MIME 类型(即,通过 Content-Type 标头)。

nosniff 会阻止请求,如果请求目标

  • 类型为 style 且 MIME 类型不是 text/css
  • 类型为 script 且 MIME 类型不是有效的 JavaScript MIME 类型

示例

防止浏览器错误地将非样式表检测为样式表,并将非脚本检测为脚本

http
X-Content-Type-Options: nosniff

另请参阅