2011-02-08 89 views
3

因此,在ASP.NET MVC2应用程序的一部分中,我必须允许来自典型的富文本框的HTML输入。所以,我在控制器方法上添加了一个属性来关闭MVC的强力输入验证。ValidateInput(false),但现在如何保持我的HTML输入干净?

但是,现在我该怎么做,以防止XSS攻击。到目前为止,我看了一下,发现:

  • AntiXSS:看起来不错,但白名单似乎无法编辑。另外,出于某种原因,我正在解决它的问题。将引用添加到dll后,编译器仍然看到缺少的程序集。
  • Antisamy:允许配置白名单,但上次.NET更新时间为2009年。这并不能激发对安全软件的信心。

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

+1

您是否允许升级到ASP.NET MVC 3?如果是这样,你可以利用AllowHtml属性。 – amurra 2011-02-10 03:09:34

回答

0

您可能会考虑使用HTML解析器,沿着解析树走去除有害的标记/属性。你将完全控制允许的内容。根据this questionHTMLAgilityPack是最适合C#的。