在 C# 中验证 CSS



我有一个生成HTML代码的Web应用程序。用户可以输入一些CSS代码,该代码会自动插入<style></style>标签中。

现在,恶意用户可以在此处输入类似</style><script>maliciousFunction();</script><style>的内容。但是,如果我只是转义整个输入,那么有效的 CSS 也会被转义(例如大括号),并且样式不再起作用。

这个问题的最佳解决方案是什么?

转义不是最好的选择,因为所有这些字符可能自然存在于 css 代码( < ' " : ; > )中,因此我相信更好的选择是使用一些解析器,它将解析和清理代码到纯 css,留下所有无法理解的混乱,我发现一个: https://github.com/TylerBrinks/ExCSS

最新更新