在 C# 中验证 CSS

Validate CSS in C#

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

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

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

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