MyWhitelist是自定的html白名单工具类,要是有两个功能:
- 支持HTML5标签
- 可自定的HTML标签白名单
支持HTML5标签
2017年html5标准已被广泛使用,在前端我们选用了非常著名“百度富文本编辑器”,它就支持html5标签。也就是说百度富文本编辑器也向服务端提交HTML5标签。
服务端在合法接收这些HTML5标签。
MyWhitelist类的白名单规则与百度富文本编辑器中的白名单规则是一样的。保证了前后端的一致性。
自定的白名单
问题描述:
jsoup默认的规则认为:
<img width='200' height='200' src='/upload/filestorage/15/54/92/85.jpg'> </img> 中的 src属性
src=' http://upload/filestorage/15/54/92/1285.jpg ' 被认定是安全的
src='/upload/filestorage/15/54/92/1285.jpg' 被认定是不安全,会被过滤掉。这里不能满足我的业务要求,我希望这里被认定是安全的。
所以写了自定义的MyWhitelist类,继承自Whitelist,修改了jsoup原有的规则,已经可以满足业务要求。
如果以后“过滤白名单”有变化,请修改本类,已满足变化的业务要求。
白名单
白名单请看MyWhitelist类的源码
在前端我使用的是百度编辑器,百度编辑器自带xss过滤白名单。
本服务端的xss过滤白名单要与前端的 xss过滤白名单 一致,已一致。并支持HTML5标签。