Html富文本过滤

来源:百度文库 编辑:神马文学网 时间:2024/06/03 12:36:13
Html富文本过滤
Write by admin inweb安全架构,web应用程序安全,未分类 at 2008-08-28 13:06:26
程序背景:80sec注意到很多web应用程序在一些场合需要允许一些Html标签,和一些标签里的一些属性,如一些日志发表的地方,书写文章的地方,但是由于程序员对安全的不太了解,或者在自己进行的安全过滤时考虑不周,都容易带来跨站脚本攻击,在一些web2.0站点甚至引发Xss Worm。常规的一些检测措施包括黑名单,白名单等等,但是都因为过滤得并不全面,很容易被绕过。其实有另外一种过滤相对严格的方法,就是基于Html语法分析的filter,在满足应用的同时可以最大限度保证程序的安全,一些过滤比较严谨的如Yahoo Mail,Gmail等等就是基于该原理进行的过滤。SafeHtml就是其中一款使用Php的开源过滤器。官方站点在:http://pixel-apes.com/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富文本过滤:http://www.80sec.com/richtext-xssfilter.html