因此,在 ASP.NET MVC2 应用程序的一部分中,我必须允许从典型的富文本框输入 HTML。因此,我在 Controller 方法上添加了一个属性以关闭 MVC 的暴力输入验证。
但是,现在我该怎么做才能防止 XSS 攻击。到目前为止,我已经查看并发现:
- AntiXSS:看起来不错,但白名单似乎不可编辑。另外,由于某种原因,我在让它工作时遇到了问题。添加对 dll 的引用后,编译器仍然发现缺少程序集。
- Antisamy:允许配置白名单,但上一次更新 .NET 是在 2009 年。这不会激发人们对安全软件的信心。
还有什么?是否有其他库可以清理包含 HTML 的输入,以便轻松配置允许的标签?
最佳答案
您可能会考虑使用 HTML 解析器,沿着解析树遍历以消除有害的标签/属性。您将完全控制允许的内容。根据this question HTMLAgilityPack最适合 C#。
关于c# - ValidateInput(false),但现在如何保持我的 HTML 输入干净?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4933187/