我有ASP.NET MVC 1.0和Entity Framework v1应用程序。
默认情况下,用户提交的内容经过验证可用于恶意输入。 (见here)。 HTML编码用户提交的数据,可防止JavaScript注入攻击。 实体框架内部使用参数化SQL,它将停止sql注入。
这是否足够?还有什么办法可以检测并阻止恶意(javascript / sql注入)输入?
请告知。
谢谢。
答案 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();
}