亚洲必赢手机Web安全有关(四):过多发表(Over Posting)Web安全系(四):过多发表(Over Posting)

by admin on 2018年10月5日

简介

简介

  过多发表之情节相对比较简单,因此,我单打算把原文中之部分第一信息翻译一下。原文链接如下:

  过多宣布的情相对比较简单,因此,我特打算将原文中的片要信息翻译一下。原文链接如下:

  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

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图