我有一个生成 HTML 代码的网络应用程序。用户可以输入一些 CSS 代码,这些代码会自动插入到 <style></style>
中。标签。
现在恶意用户可以输入类似 </style><script>maliciousFunction();</script><style>
的内容这里。但是如果我简单地转义整个输入,那么有效的 CSS 也会被转义(例如大括号)并且样式不再有效。
这个问题的最佳解决方案是什么?
最佳答案
转义不是最好的选择,因为所有这些字符可能自然存在于 css 代码中 ( < ' " : ; > )
,因此我相信更好的选择是使用一些解析器将代码解析并清理为纯 css,留下所有不可理解的困惑,我发现了一个:https://github.com/TylerBrinks/ExCSS
关于css - 在 C# 中验证 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29913161/