C# BindAttribute检查MVC中的json对象
在MVC发布过程中,我需要确保只有我需要的数据才会进入我的方法,并且忽略所有其他信息,我已经找到了BindAttribute,它可以很好地用于表单发布,例如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
[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属性设置为每个禁止的属性。