在纠结的网络中,Michal Zalewski 说:
避免使用 Content-Type: application/octet-stream 并改用 application/binary,尤其是对于未知的文档类型。避免返回 Content-Type: text/plain。
例如,任何代码托管平台在将可执行文件或源存档作为应用程序/八位字节流返回时都必须谨慎,因为它们可能会被误解为 HTML 并内联显示。
随后在 Internet Explorer 和 Safari 中实现的 text/plain 逻辑以在这种情况下检测 HTML 确实是个坏消息:它剥夺了 Web 开发人员安全使用这种 MIME 类型来生成用户特定的纯文本文档的能力,并且没有提供其他选择. 这导致了大量的 Web 应用程序漏洞,但时至今日,Internet Explorer 开发人员似乎并不后悔,也没有改变他们代码的默认行为。
网站使用X-Content-Type-Options:nosniff
。作者对这个标题说了以下内容:
强烈建议使用此标头 [X-Content-Type-Options];不幸的是,对它的支持 [...] 在其他浏览器中只得到有限的支持。换句话说,它不能作为抵御内容嗅探的唯一防御措施。
哪些内容嗅探攻击X-Content-Type-Options:nosniff
无法阻止?什么Content-Type
应该返回给用户而不是text/plain
?