大红鹰葡京会Web安全息息相关(四):过多宣布(Over Posting)Web安全有关(四):过多宣布(Over Posting)

简介

简介

  过多宣布的情节相对比较简单,因此,我单打算把原文中之片生死攸关信息翻译一下。原文链接如下:

  过多发表之始末相对比较简单,因此,我不过打算将原文中之有些首要信息翻译一下。原文链接如下:

  http://www.asp.net/mvc/overview/getting-started/getting-started-with-ef-using-mvc/implementing-basic-crud-functionality-with-the-entity-framework-in-asp-net-mvc-application\#overpost  

  http://www.asp.net/mvc/overview/getting-started/getting-started-with-ef-using-mvc/implementing-basic-crud-functionality-with-the-entity-framework-in-asp-net-mvc-application\#overpost  

  示例代码下载:

  示例代码下载:

  https://code.msdn.microsoft.com/ASPNET-MVC-Application-b01a9fe8

  https://code.msdn.microsoft.com/ASPNET-MVC-Application-b01a9fe8

分析

分析

  假设有一个类Student,它用于与数据库建立映射,而且Student中的一个字段Secret你切莫思在页面上修改它的值。

  假设有一个类Student,它用于和数据库建立映射,而且Student中之一个字段Secret你无思量当页面及修修改改其的价值。

  大红鹰葡京会 1

  大红鹰葡京会 2

  即使界面上没Secret对应之字段,hacker可以经过有器(如fildder)或者编写js去发送请求来修改Secret的价。

  即使界面及并未Secret对应的字段,hacker可以透过有家伙(如fildder)或者编写js去发送请求来改Secret的价。

   大红鹰葡京会 3

   大红鹰葡京会 4

  如齐图,Secret的值会被修改为OverPost。

  如齐图,Secret的值会被改也OverPost。

 防止

 防止

  以ASP.NET中,防止了多发表之计大概发生以下几栽:

  在ASP.NET中,防止了多宣布的方式大概有以下几种:

  1.
利用BindAttribute中之Include属性,把需要映射的字段加到白名单。

  1.
运用BindAttribute中之Include属性,把需要映射的字段加到白名单。

  public ActionResult Create([Bind(Include =
“LastName, FirstMidName, EnrollmentDate”)]Student
student)

  public ActionResult Create([Bind(Include =
“LastName, FirstMidName, EnrollmentDate”)]Student
student)

  2.
以BindAttribute中的Exclude属性,把非容许映射的字段加到黑名单。

  2.
采取BindAttribute中的Exclude属性,把未容许映射的字段加到黑名单。

  public ActionResult Create([Bind(Exclude =
“Secret”)]Student student)

  public ActionResult Create([Bind(Exclude =
“Secret”)]Student student)

  3.
利用TryUpdateModel方法,验证Model的当儿,制定要映射的字段。

  3.
用TryUpdateModel方法,验证Model的时段,制定要映射的字段。

  if (TryUpdateModel(student, “”, new string[] {
“LastName”, “FirstMidName”, “EnrollmentDate” }))

  {}

  if (TryUpdateModel(student, “”, new string[] {
“LastName”, “FirstMidName”, “EnrollmentDate” }))

  {}

  4.
定义一个新的近乎作为输入参数

  4.
定义一个初的类似作为输入参数

    public class StudentForm
     
{

        
public string LastName { get; set; }

    public class StudentForm
     
{

        
public string LastName { get; set; }

        
public string FirstMidName { get; set; }

        
public string FirstMidName { get; set; }

        
public DateTime EnrollmentDate { get; set; }

  
   }

        
public DateTime EnrollmentDate { get; set; }

  
   }

 

 

文章转载自:http://www.cnblogs.com/Erik_Xu/p/5497501.html

章转载自:http://www.cnblogs.com/Erik_Xu/p/5497501.html

相关文章

admin

网站地图xml地图