扩展自jsoup的HTML XSS过滤程序

当我们使用富文本编辑器的时候,为了确保存储的内容没有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 wechat
欢迎关注itzhai公众号
  • 本文作者: arthinking
  • 本文链接: jsoup-html-xss-program.html
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!