c# - ValidateInput(false),但现在如何保持我的 HTML 输入干净?

标签 c# asp.net-mvc-2 xss

因此,在 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/

相关文章:

html - 使用 coldfusion 保护以 html 格式输出的用户输入

c# - 如何在 MVC 中忽略查询字符串中的模型绑定(bind)

c# - 使控件对 HitTest 可见但对拖放透明

c# - 仅在从特定操作重定向时才允许访问操作

asp.net-mvc - 子对象上的 ASP.NET MVC 2 模型验证 (DataAnnotations)

php - 您使用什么样的 HTMLPurifier 设置来净化 CSS?

javascript - 使用 document.write 显示 window.location.search 是否不安全/易受 xss 攻击?

c# - ObservableCollection 即使在 .NET 4.5 中也不是线程安全的?

c# - 方法参数 : Interface VS Generic type

c# - 将类转换为 XML 的最快方法是什么