在Razor中过滤掉错误的HTML数据

时间:2012-02-01 03:03:23

标签: asp.net asp.net-mvc asp.net-mvc-3 razor

在我的Razor MVC应用程序中,我添加了一个模型属性允许HTML的功能:

[AllowHtml]
public string Body { get; set; }

这很有效。但我想知道,我想确保用户不提交恶意数据,那么是否有人构建了一个实用程序或库来过滤掉错误的HTML数据,如JavaScript语句等?我打算解码HTML并在UI中显示,所以我自然希望有点限制。我知道我必须从代​​码手动执行此操作,只是对某些指针或实用程序感到好奇。

感谢。

1 个答案:

答案 0 :(得分:1)

绝对!微软的反xss库有一个消毒剂: 它使用起来很简单,我在本周在pluralsight.com上发布的“Hack theofing your ASP.Net Applications”视频系列中介绍了这个(以及更多)。如果你使用html,那么不仅仅是html编码,还要注意悬挂用于跨站点脚本的html问题,以及不正确使用可能导致xss的javascript函数。看看视频系列(主题比这里的帖子要长很多)


Microsoft.Security.Application.Sanitizer.GetSafeHtmlFragment(yourHtml);

获取Web保护库中的代码。请注意,在asp.net 4.5中,这应该包含在System.Web.Security

http://wpl.codeplex.com/