如何解决使用DOMPurify清理HTML时允许属性的安全隐患
我正在使用DOMPurify对HTML进行清理以防止XSS。
const sanitizedHtml = DOmpurify.sanitize(htmlString);
问题是默认情况下,DOmpurify不支持HTML标记的属性。就我而言,我有一个具有target
属性的锚元素,并且经过清理的HTML删除了target
属性。
const sanitizedHtml = DOmpurify.sanitize(htmlString,{ ADD_ATTR: ['target'] });
但是,我的问题是,如果DOmpurify删除了所有属性,则背后必须有一些原因。因此,如果我允许如上所述的某些特定属性,我是否会开放任何安全风险(XSS攻击)?
解决方法
虽然这可能有点晚了,但我目前正在自己对该主题进行一些研究。也许将来会对某人有所帮助。
简单地允许属性 target
会导致您面临 here 所述的安全问题。
允许 target=_blank
的问题确实存在,但已关闭,因为作者不认为这是他们想要实现的功能。
似乎建议使用钩子(可以在链接中找到示例)来实现此功能。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。