我用百度编辑器,后端使用CI的CISecurity类作xss过滤,结果将所有内容都过滤掉了,怎么处理?
我用百度编辑器,后端使用CI的安全类,结果将所有内容都过滤掉了,经过调试是
_remove_evil_attributes函数中该语句将所有内容过滤了,
$str = preg_replace('/(<?)(\/?[^><]+?)([^A-Za-z<>-])(.?)('.implode('|', $attribs).')(.?)([\s><]?)([><]*)/i', '$1$2 $4$6$7$8', $str, -1, $count);
内容是我从网页上复制下来的富文 本内容,包括图文 ,就是常规则 的富文 本内容
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
ueditor.all.js 中
把整个switch 注释掉 就不会过滤,
遇到了同样的问题,求解决方案!
CI这部分这个正则确实让人吐槽。我被误伤好几次了。
现在我的做法是:
1 开启xss过滤,对于form提交的内容,如果被误伤全部清空了,那就从input流中取出来再处理;
2 ueditor中,部分属性如img的style=""会导致匹配到_remove_evil_attributes的正则时被干掉,在不考虑图片做特殊排版时,可以去掉插入图片的这个属性!
暂时没想到其他更好的方式。欢迎大神指教~