首页 > 我用百度编辑器,后端使用CI的CISecurity类作xss过滤,结果将所有内容都过滤掉了,怎么处理?

我用百度编辑器,后端使用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);

内容是我从网页上复制下来的富文 本内容,包括图文 ,就是常规则 的富文 本内容


遇到了同样的问题,求解决方案!


CI这部分这个正则确实让人吐槽。我被误伤好几次了。
现在我的做法是:
1 开启xss过滤,对于form提交的内容,如果被误伤全部清空了,那就从input流中取出来再处理;
2 ueditor中,部分属性如img的style=""会导致匹配到_remove_evil_attributes的正则时被干掉,在不考虑图片做特殊排版时,可以去掉插入图片的这个属性!
暂时没想到其他更好的方式。欢迎大神指教~


ueditor.all.js 中

把整个switch 注释掉 就不会过滤,

【热门文章】
【热门文章】