html+富文本标签,Html富文本过滤

程序背景: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联系:)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值