Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 5 MVC 5与viewmodel XSS、SQL注入相关的安全问题_Asp.net Mvc 5_Xss_Sql Injection - Fatal编程技术网

Asp.net mvc 5 MVC 5与viewmodel XSS、SQL注入相关的安全问题

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) { }

有人能解释一下ModelState.IsValid在MVC动作控制器中的确切含义吗

    [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客户端验证,那么表单一旦提交,就会再次验证,以确保。。。类似于服务器端的
不引人注目的验证
?如果需要更多帮助,请发表评论。。。