C# BindAttribute检查MVC中的json对象

C# BindAttribute检查MVC中的json对象,c#,asp.net-mvc,post,data-binding,C#,Asp.net Mvc,Post,Data Binding,在MVC发布过程中,我需要确保只有我需要的数据才会进入我的方法,并且忽略所有其他信息,我已经找到了BindAttribute,它可以很好地用于表单发布,例如 [HttpPost()] [Route("name")] public void GetName([Bind(include:"Name")] NameAddress value) 这只检查FormBindings,我想检查JSON对象绑定,如下所示: [HttpPost()] [Route("name")] public void Ge

在MVC发布过程中,我需要确保只有我需要的数据才会进入我的方法,并且忽略所有其他信息,我已经找到了BindAttribute,它可以很好地用于表单发布,例如

[HttpPost()]
[Route("name")]
public void GetName([Bind(include:"Name")] NameAddress value)
这只检查FormBindings,我想检查JSON对象绑定,如下所示:

[HttpPost()]
[Route("name")]
public void GetName([BindJson(include:"Name")] NameAddress value)
如果在主体上传递了以下内容,则只会设置名称:

{
    "id": 1,
    "Address": "somewhere",
    "Name": "Peter"
}

创建视图模型

public UserVM
{

public stirng Name {get;set;} 

}
实际使用方法

[HttpPost()]
[Route("name")]
public void GetName(UserVM value)
{

string name = value; // Get the Name


}

选中此项可从客户端发布
Json
数据
Javascript

创建视图模型

public UserVM
{

public stirng Name {get;set;} 

}
实际使用方法

[HttpPost()]
[Route("name")]
public void GetName(UserVM value)
{

string name = value; // Get the Name


}

检查以发布来自客户端的
Json
数据
Javascript

尝试使用,只需创建带有必填字段的ViewModel。尝试使用,只需创建带有必填字段的ViewModel。我应该对此问题做进一步的阐述,这是一个完整的安全问题:对动态确定的对象属性的修改控制不当软件从上游组件接收输入,该组件指定要在对象中初始化或更新的多个属性、属性或字段,但它不能正确控制可以修改的属性。通过操纵HTTP请求的内容,攻击者可以设置超出开发人员预期的属性。建议在.NET中,通过将Include属性设置为每个允许的属性,明确指定应使用Bind属性访问模型的哪些属性。如果使用首选属性Include不可行,请使用Bind属性指定哪些属性不应访问,并将Exclude属性设置为每个禁止的属性。我应该进一步介绍这个问题,这是一个完整的安全问题:对动态确定的对象属性的修改控制不当软件从上游组件接收输入,该组件指定要在对象中初始化或更新的多个属性、属性或字段,但它不能正确控制可以修改的属性。通过操纵HTTP请求的内容,攻击者可以设置超出开发人员预期的属性。建议在.NET中,通过将Include属性设置为每个允许的属性,明确指定应使用Bind属性访问模型的哪些属性。如果无法使用首选属性Include,请使用Bind属性指定哪些属性不应访问,并将Exclude属性设置为每个禁止的属性。