4

前言

所以 IE 会做Mime-Type sniffing。那部分是旧消息。

关于如何对抗它的建议往往是“提供内容类型的 IE 信任”(即任何不是文本/纯文本或应用程序/八位字节流的内容)或“在文件开头添加无关数据”这绝对是你所服务的类型'。

现在,我正在开发一个应用程序,它必须允许消息附件(如在电子邮件中),偶尔内联显示(再次如在电子邮件中),并且我们想要关闭 XSS 向量。IE 的 mime 嗅探(在未修补的 IE6 中,我必须支持,例如 IE6/Win2000)是这些向量之一 -text/plain具有 html 内容的文件将作为 html 触发。在这一点上,重新编码不是一个选项,更改用户提供的附件只有在绝对不怀疑文件的恶意性时才会发生 - 并且有人可能希望将 HTML 作为文本发送。

现在,微软的 MSDN 文章暗示这种情况可能比宣传的更容易解决:

如果 Internet Explorer 知道指定的 Content-Type并且没有 Content-Disposition数据,Internet Explorer 将执行“MIME 嗅探”, [...]

伟大的!

除了我没有 IE 也没有当前的方法来可靠地安装它(我意识到这对于 web 开发人员来说是一个相当可悲的状态,我希望尽快解决这个问题)而且这是我似乎不太明白的灰色理论以一种或另一种方式得到确认。当地消息人士称,这行是胡说八道——IE 会模仿Content-Disposition: inline / 的任何内容,并且对于<default>-Type的口味不够具体。

但是 x-* (RFC 中的 'extension-token')呢?

尝试用谷歌搜索浏览器如何处理Content-Disposition:<extension-token>并没有产生任何结果(尽管我可能只是做错了,但我最近对谷歌的理解严重下滑)。我发现了一个看起来很有希望的问题,但结果证明是线程作者一方的误解,这意味着思路实际上从未在那里得到解决。

问题)

如果您明确传递Content-Disposition: inline,IE 真的会嗅探吗?

如果是这样:这里有人知道浏览器如何处理Content-Disposition:<extension-token>吗?

如果他们以对我的目的有益的方式这样做,假设它与默认值同义(实际上是“内联”,尽管我听说它没有在任何地方定义?),它是否足够具体到 IE不去Mime 嗅探?或者我真的是在考虑追求这条道路而自取其辱?

4

3 回答 3

3

笔记:

"注意在 Windows XP Service Pack 2 (SP2) 的 Internet Explorer 6 中,MIME 类型“text/plain”是没有歧义的,并且永远不会在受限区域中呈现为 HTML,即使内容表明这是正确的格式。”

于 2010-03-01T13:11:08.163 回答
2

我记得使用 some 正确返回文本Content-disposition: attachment,但我不确定它是否适合您的情况。

但这肯定会有所帮助:

您不需要 Windows (r) 来安装 ie6。试试ies4linux

于 2010-04-15T10:55:54.487 回答
-1

我发现http://www.browserstack.com/非常有用。您可以通过 Flash 应用程序在他们的一台服务器上使用任何版本的任何浏览器。

这是一项付费服务​​,但您可以使用 modern.ie 上的链接免费测试三个月(由 Microsoft 赞助,因为他们知道您使用此类工具为 Internet Explorer 开发)

于 2013-04-02T15:53:00.183 回答