前端安全审计时如何防止CSS注入风险?

UE丶海宇 阅读 33

最近在做项目的安全审计,发现有个用户自定义主题的功能,允许传入CSS字符串动态应用样式。我担心这里会有CSS注入漏洞,比如用户输入恶意代码破坏页面或窃取数据。虽然我用了DOMPurify处理HTML,但对CSS这块不太确定该怎么防护。

目前我是直接把用户输入的CSS插到<style>标签里,像这样:

.user-theme {
  background: url('javascript:alert(1)');
  color: red;
}

测试时发现某些浏览器居然会执行javascript:伪协议!有没有安全的方式来解析或过滤用户提交的CSS?或者应该完全禁止这种动态样式功能?

我来解答 赞 7 收藏
二维码
手机扫码查看
2 条解答
子晴 Dev
这个问题的关键是要确保用户提交的CSS不会被执行恶意代码,同时又要允许用户自定义样式。直接将用户输入的CSS插入到