IE的MIME嗅探

    IE从SP2开始进行了MIME嗅探的功能。以前的浏览器都是通过Content-Type来判断Resoponse流是何种类型的内容,进而调用不用的处理程序进行处理,如text/html表明接受的html代码,需要做html页面渲染,text/jpeg表明接受的图片文件,需要对接受到的数据流调用处理jpeg格式流的处理程序。
    IE则在此基础上增加了对MIME的嗅探功能,不仅仅根据Content-Type来判断,而且会根据Response流的内容来进行判断。加入Content-Type的值是text/plain,在非IE浏览器中,text/plain表明的是普通的文本,浏览器只需要把内容展示出来就可以了。但是在IE中,如果Response的内容是类似如下的内容:
  1. <html>
  2. <script>
  3. alert(/xss/);
  4. </script>
  5. </html>
    则IE执行MIME嗅探后,会判定其内容是text/html类型,此时就会执行html的渲染逻辑,在浏览器中弹出/xss对话框。
    IE的此特性可以得出,在Web程序中,返回的Response一定要具有正确的Content-Type值,避免IE的“聪明”。

    问题是:如果我们的确需要给用户提供一个普通的文件进行下载,该文件的内容含有如上格式的html相关字符,此时Content-Type的值是需要设置成text/plain(因为这个文件的确是plain的),该怎么办呢?
    解决方式是:使用Content-disposition.
    Content-disposition格式:
         "content-disposition","attachment; filename=fname.ext"
    在filename=的后面写上文件名(如foo.txt),此时浏览器会直接弹出对话框提示用户是否保存此文件。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值