富文本编辑器怎么防XSS攻击?
我在项目里用了富文本编辑器,用户可以贴各种HTML内容,但担心被XSS注入。试过用DOMPurify.sanitize()处理,但有些样式会被干掉,客户不接受。
有没有既能保留合理标签(比如<b>、<img>、<a>),又能彻底过滤恶意脚本的方法?比如<img onerror="alert(1)">这种就该被拦住。
现在后端只做了简单转义,前端又怕漏掉什么。是不是得配合白名单策略?求个稳妥方案……
import DOMPurify from 'dompurify';
const clean = DOMPurify.sanitize(dirty, {
ALLOWED_TAGS: ['b', 'i', 'u', 'a', 'img', 'p', 'br'],
ALLOWED_ATTR: ['href', 'src', 'alt', 'title']
});
onerror这类危险属性:后端也别只简单转义,建议再用类似策略过滤一遍,保险点。客户要求多很正常,慢慢磨吧,反正安全第一。