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

时间:2011-02-08 12:45:50

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

因此,在ASP.NET MVC2应用程序的一部分中,我必须允许来自典型富文本框的HTML输入。因此,我在控制器方法上添加了一个属性来关闭MVC的暴力输入验证。

但是,现在我该怎么做才能防止XSS攻击。到目前为止,我已经查看并找到了:

  • AntiXSS:看起来不错,但白名单似乎不可编辑。此外,出于某种原因,我在使用它时遇到问题。在添加对dll的引用之后,编译器仍然看到缺少程序集。
  • Antisamy:允许配置白名单,但最后一次更新.NET是在2009年。这并没有激发人们对安全软件的信心。

还有什么?是否有其他库用于清理包含HTML的输入,以便轻松配置允许的标记?

1 个答案:

答案 0 :(得分:0)

您可以考虑使用HTML解析器,沿着解析树移动,从而消除有害的标记/属性。你可以完全控制允许的内容。根据{{​​3}} this question,最适合C#。