分享

Html富文本过滤

 Ralf_Jones 2008-09-18

Html富文本过滤

Write by admin in web安全架构, web应用程序安全, 未分类 at 2008-08-28 13:06:26

程序背景:80sec注意到很多web应用程序在一些场合需要允许一些Html标签,和一些标签里的一些属性,如一些日志发表的地方,书写文章的地方,但是由于程序员对安全的不太了解,或者在自己进行的安全过滤时考虑不周,都容易带来跨站脚本攻击,在一些web2.0站点甚至引发Xss Worm。常规的一些检测措施包括黑名单,白名单等等,但是都因为过滤得并不全面,很容易被绕过。其实有另外一种过滤相对严格的方法,就是基于Html语法分析的filter,在满足应用的同时可以最大限度保证程序的安全,一些过滤比较严谨的如Yahoo Mail,Gmail等等就是基于该原理进行的过滤。SafeHtml就是其中一款使用Php的开源过滤器。官方站点在:/safehtml。


原理介绍:这种filter通过对输入的文档进行html解析,去掉不合法的标签和字符,如去掉html标签里的\0,得到一个标准的文档Dom,通过对该Dom的遍历,结合自己的策略就可以抛弃如script,link,style,Xml这种危险的标签,然后再针对标签的属性进行过滤,抛弃如On*这种属性,然后加入对src这种属性的检测,只允许特定的协议,对style属性进行检测,抛弃非法的style属性,最后补齐需要闭合的html标签,实现对整个文档的过滤。

程序优点:可以对整个文档进行非常安全的过滤,完全开源,也可以根据自己的需要进行适当的调整,来实现自己的安全需求。

程序缺点:非常严格的限制了一些标签的使用,对于整个程序的白名单和黑名单可能需要根据自己的需要进行调整,而一些调整可能带来安全问题,而且在过滤的时候并没有完全考虑字符集的因素,可能在GBK,Gb2312等字符集下绕过。

程序下载:80sec提供配置好的样例程序包(包括HTMLSax3类),Planet Chinese Security Community即使用该过滤包。

程序演示:程序测试,如果你有发现程序的问题,也请与root#80sec.com联系:)

本站内容均为原创,转载请务必保留署名与链接!
Html富文本过滤:

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 全屏 打印 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多