科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网安全频道解读IE8 RC1中改进版本的XSS过滤器

解读IE8 RC1中改进版本的XSS过滤器

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

微软公司于1月26日发布了IE8 RC1,以下是IE8 RC1中XSS过滤器功能的改进以及bug修复:

来源:IT专家网 2009年2月19日

关键字: XSS Web安全 IE8

  • 评论
  • 分享微博
  • 分享邮件

 

微软公司于1月26日发布了IE8 RC1,以下是IE8 RC1中XSS过滤器功能的改进以及bug修复:

  ·根据系统所在区域,强化URL过滤器:

  包含某些字节序列的URL能够在某些地区通过Beta 2过滤器,例如,位于中国的系统,以下格式的URL就能绕过过滤器:

http://www.fabrikam.com?x=%A0<script>alert();</script>

  该过滤器在URL通过正则表达式引擎之前对URLEncoding进行解码, 在原本的0xA0字节后面加上0x3C字节(“<”)能够使MultiByteToWideChar 失效,这是因为在中国和其他地方, 0XA0 0x3C不是有效的多字节字符。在这种情况下,这些失效能够联合起来使正则表达式匹配不能区分大小写,更糟糕的是,在正则表达式代码的后节点, 0xA0 0x3C序列将被解译为单一的多字节字符,因此,<字符将不会从输入内容中被发现,相应的启发式也不会检测到XSS。

  新发布的IE8 RC1让正则表达式代码将所有输入内容作为单个字节串来处理,在默认字符代码(可以是多字节)中没有字符。

  ·HTTP响应中的NULL将导致处理器忽略对大块HTTP响应数据

  相关缓冲区类别是代码中的rev’d以解决此问题。

  ·增加保护功能以抵御涉及PHP的stripslashes函数攻击情况

  PHP的stripslashes 功能能够删除输入内容中的反斜线(它也可以用单一反斜线取代双反斜线),对于PHP开发者而言,经常在输出字符串前呼叫 stripslashes函数,在这些情况下,如果输出内容启动了服务端的XSS跨站脚本漏洞,漏洞仍然可以被滥用,尽管有IE8 XSS过滤器。

  以下是XSS Filter Architectural Overview(XSS过滤器架构概览)一文中所讨论到的示例:

  上面讨论的解码过程是很灵活的,也可以为不同网络平台制品进行解码。必要的话,该过滤器可以生成额外的签名(根据相同输入数据的不同的解译)。例如,由于不合式的URLEncoded字符可能被不同的网络平台进行不同的处理,因此过滤器必须能够建立适当的签名。

  这说明了新功能的表现,该过滤器现在可以生成额外签名,必要时能够为输入内容的不同解译进行过滤。这些新签名旨在弥补PHP的stripslashes函数功能的不足之处。

  似乎现在大家都不推荐使用PHP的“神奇引号”,如果是因为神奇引号功能而使用PHP代码的stripslashes函数功能,那么就要预想到stripslashes在网络的使用将会下降。

  ·增加overlong UTF-8 服务器的保护功能

  与上面讨论的PHP函数Stripslashes变化相类似,如果在输入中鉴定出超长的UTF-8序列,我们现在可以生成并处理额外签名。

  虽然超长的UTF-8已经在RFC 3629中明确禁止了,但在web服务器平台还不是特别普遍,还不能解决我们代码中的这个攻击矢量。

  ·增强对防止注入FORM和ISINDEX保护功能

  虽然总的来说,微软没有阻止通用HTML注入,不过微软对这两个可以启动与攻击情况(注入脚本攻击)类似的因素已经提高了警惕。

  ·OBJECT标签的CODETYPE属性现在与TYPE属性一样

  OBJECT标签的CODETYPE属性能够提供和TYPE属性一样的功能,IE8 RC1中,这两个属性是平起平坐的。

  ·一般性能改善

  例如:预验证功能更够避免某些情况下正则表达式对性能的影响。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章