扩展自jsoup的HTML XSS过滤程序

发布于 2015-03-09 | 更新于 2020-09-20

当我们使用富文本编辑器的时候,为了确保存储的内容没有XSS注入问题,比较安全的做法是对输入的内容进行过滤。

常见的XSS注入方式可以参考这里:

https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet

Jsoup中提供给了白名单过滤的功能,但是并没有对属性进行校验,而属性中可能包含JS脚本或者是CSS注入,所以除了设置白名单的标签和属性之外,也需要对属性进行过滤。以下是一个过滤程序,允许你对属性进行自定义的过滤设置,并且允许动态的刷新白名单列表,方便在运行时增减支持从标签。

https://github.com/arthinking/java-code/tree/master/src/main/java/me/arthinking/html/jsoup/custom

还有另一种解决XSS的思路,就是严格的限制每一个标签和输入的属性值,只有符合声明的规则的HTML文本才允许校验通过,AntiSamy正是基于这个思路的,通过把符合安全规则的标签和属性值都通过正则的方式写入到了xml文件里面进行过滤,可以参考这里:

https://www.owasp.org/index.php/Category:OWASP_AntiSamy_Project

本文作者: arthinking

本文链接: https://www.itzhai.comjsoup-html-xss-program.html

版权声明: 版权归作者所有,未经许可不得转载,侵权必究!联系作者请加公众号。

×
IT宅

关注公众号及时获取网站内容更新。