ASP.NET MVC中的恶意输入

时间:2010-01-24 19:02:40

标签: asp.net-mvc entity-framework

我有ASP.NET MVC 1.0和Entity Framework v1应用程序。

默认情况下,用户提交的内容经过验证可用于恶意输入。 (见here)。 HTML编码用户提交的数据,可防止JavaScript注入攻击。 实体框架内部使用参数化SQL,它将停止sql注入。

这是否足够?还有什么办法可以检测并阻止恶意(javascript / sql注入)输入?

请告知。

谢谢。

3 个答案:

答案 0 :(得分:4)

使用绑定(包括...属性以防止过度发布问题。

有关详细信息,请查看此链接:http://bradwilson.typepad.com/blog/2010/01/input-validation-vs-model-validation-in-aspnet-mvc.html

希望这有帮助。

答案 1 :(得分:2)

您应该使用ViewModels从视图中呈现和检索数据,然后验证它们。这将是输入验证。

然后将数据从ViewModels传递到您的DomainModels(EF)。然后,您应该验证您的域模型,以防止破坏域规则。

答案 2 :(得分:2)

继续@ ali62发布的内容;

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult MyAction( [Bind(Exclude="id")] User user )
{
    return View();
}

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult MyAction( [Bind(Include="name, email")] User user )
{
    return View();
}