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地图