Asp.net mvc 5 MVC 5与viewmodel XSS、SQL注入相关的安全问题
有人能解释一下ModelState.IsValid在MVC动作控制器中的确切含义吗Asp.net mvc 5 MVC 5与viewmodel XSS、SQL注入相关的安全问题,asp.net-mvc-5,xss,sql-injection,Asp.net Mvc 5,Xss,Sql Injection,有人能解释一下ModelState.IsValid在MVC动作控制器中的确切含义吗 [HttpPost] [AllowAnonymous] [ValidateAntiForgeryToken] public async Task<ActionResult> Something(MyViewModel model) { if (ModelState.IsValid) { }
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Something(MyViewModel model)
{
if (ModelState.IsValid)
{
}
}
[HttpPost]
[异名]
[ValidateAntiForgeryToken]
公共异步任务模型(MyViewModel)
{
if(ModelState.IsValid)
{
}
}
我知道ValidateAntiForgeryToken对表单发布源代码进行了一些保护
如果恶意用户将绕过客户端上的表单验证,并设法将一些恶意代码发布到我的操作方法中,它是否会被ModelState.IsValid
检测到
一旦表单发布到我的应用程序中,我如何在服务器端提供最佳保护
我是否必须手动检查模型是否不包含XSS或SQL恶意代码
附言
我首先使用EF代码,我认为这是非常安全的,但我想确定一下。
ModelState.IsValid
表示您在模型类中使用的所有验证等是否有效
例如:-
public class Emp
{
[Required]
public int EmpCd { get; set; }
}
因此,如果在post EmpCd期间有null或字符串值,它将使ModelState无效。
如果您设法避免用户界面不引人注目的客户端验证,则基本上会使用此选项,然后ModelState.IsValid
将进行验证。
ModelState.IsValid告诉您是否已将任何模型错误添加到
ModelState.
默认模型绑定器将为基本类型添加一些错误
转换问题(例如,传递某事物的“字符串”)
这是一个“int”)
示例DataAnnotations模型绑定器将使用
从数据库上的DataAnnotations属性中获取的验证错误
模型。因此,基本上,如果您设法避免UI客户端验证,那么表单一旦提交,就会再次验证,以确保。。。类似于服务器端的
不引人注目的验证
?如果需要更多帮助,请发表评论。。。