上面的引用(和其他引用)表明,简单地为所有响应设置这个标题是不好的,但是尽管遵循了任何相关的链接并在谷歌上搜索,我还是找不到这个论点背后的任何理由。
设置x-content-type-options:nosniff
有哪些风险/问题,为什么要避免使用text/css
和text/javascript
以外的MIME类型?
或者,如果没有风险/问题,为什么Mozilla(和其他人)建议存在风险/问题?
肖恩·索伯恩的回答很有帮助,给我指出了一些好的材料,这就是我授予赏金的原因。然而,我现在做了一些更多的挖掘,我想我有了我需要的答案,结果是与肖恩给出的答案相反。
因此,我将回答我自己的问题:
上面的引用(和其他引用)表明,简单地为所有响应设置这个标题是不好的,但是尽管遵循了任何相关的链接并在谷歌上搜索,我还是找不到这个论点背后的任何理由。
有了这样的解释,一切都变得更有意义,答案也变得清晰起来:
您需要为所有文件提供nosniff
标头,以降低来自用户内容的注入攻击风险。
只提供带有此头的CSS/JS文件是毫无意义的,因为这些类型的文件在此上下文中是可以接受的,不需要任何额外的嗅探。
或者,如果没有风险/问题,为什么Mozilla(和其他人)建议存在风险/问题?
没有问题。
所描述的问题涉及web浏览器在访问内容时应用nosniff
规则时破坏与现有站点兼容性的风险。Mozilla的研究表明,由于服务器配置错误,在标记上强制
nosniff
选项会破坏许多站点,因此在图像上下文中会忽略标头。
如果您使用的是nosniff
标头,请确保您也提供了正确的content-type
标头!
一些参考资料帮助我更全面地理解了这一点: