IE和Content-disposition内联与扩展令牌

时间:2010-03-01 10:04:38

标签: internet-explorer http content-type mime-types content-disposition

序言

所以IE确实Mime-Type sniffing。那部分是旧闻。

如何打击它的建议往往是“提供内容类型的IE信任”(即任何不是text / plain或application / octet-stream)或'在开始时添加无关数据'绝对属于您所服务类型的文件。

现在,我正在开发一个必须允许邮件附件的应用程序(比如在电子邮件中),偶尔会以内联方式显示(再次像在电子邮件中一样),我们想要关闭XSS向量。 IE的mime嗅探(在未修补的IE6中,我必须支持,例如IE6 / Win2000)是其中一个向量 - 具有html内容的text/plain文件将触发为html。此时重新编码不是一种选择,更改用户提供的附件只有在对文件的恶意程度毫无疑问时才会发生 - 而且有人可能希望将HTML作为文本发送。

现在,Microsoft's MSDN article意味着情况可能比宣传的更容易解决:

  

如果Internet Explorer知道   指定了 Content-Type ,但没有   内容处理数据,互联网   资源管理器执行“MIME嗅探”,[...]

大!

除了我没有IE或当前意味着可靠地安装它(我意识到这对于web开发者来说是一个相当悲伤的状态,我希望尽快解决这个问题)这是灰色理论,我不能似乎已经证实了这种或那种方式。当地消息来源说这条线是hogwash - IE会模仿任何内容 - 处置:内联/ <default> ,并且在 -Type 中没有足够的特色

但是x- *('extension-token' in the RFC)呢?

尝试谷歌浏览器如何处理内容处理:<extension-token> 没有产生任何结果(虽然我可能只是做错了,但我对谷歌的理解最近严重下滑) 。我发现one question看起来很有前途,但结果却是线程作者的一个误解,这意味着思路从未真正在那里得到解决。

问题(S)

如果您明确传递内容处理:内联,IE真的会嗤之以鼻吗?

如果是这样的话:有没有人知道浏览器如何处理内容处理:<extension-token>

如果他们以符合我的目的的方式做到这一点,假设它与默认值同义(有效'内联',虽然我听说它没有在任何地方定义?),它是否足够特定于IE 不是到Mime嗅?或者我实际上是想通过追求这条大道来拍摄自己?

3 个答案:

答案 0 :(得分:3)

注意:

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

答案 1 :(得分:2)

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

但这肯定会有所帮助:

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

答案 2 :(得分:-1)

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

这是一项付费服务​​,但你可以免费测试三个月(由微软赞助,因为他们知道你跪在这样的工具上为Internet Explorer开发),使用在modern.ie上找到的链接