所以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看起来很有前途,但结果却是线程作者的一个误解,这意味着思路从未真正在那里得到解决。
如果您明确传递内容处理:内联,IE真的会嗤之以鼻吗?
如果是这样的话:有没有人知道浏览器如何处理内容处理:<extension-token>
?
如果他们以符合我的目的的方式做到这一点,假设它与默认值同义(有效'内联',虽然我听说它没有在任何地方定义?),它是否足够特定于IE 不是到Mime嗅?或者我实际上是想通过追求这条大道来拍摄自己?
答案 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上找到的链接