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

发布于 2022-08-31 20:55:15 字数 330 浏览 15 评论 0

我用百度编辑器,后端使用CI的安全类,结果将所有内容都过滤掉了,经过调试是

_remove_evil_attributes函数中该语句将所有内容过滤了,

$str = preg_replace('/(<?)(\/?[^><]+?)([^A-Za-z<>-])(.?)('.implode('|', $attribs).')(.?)([\s><]?)([><]*)/i', '$1$2 $4$6$7$8', $str, -1, $count);

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

撧情箌佬 2022-09-07 20:55:16

ueditor.all.js 中

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

变身佩奇 2022-09-07 20:55:16

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

冷︶言冷语的世界 2022-09-07 20:55:16

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文