• 4、Web应用程序中的安全向量 -- over-posting(重复提交)


      模型绑定是ASP.NET MVC提供的强大功能,可遵照命名约定将输入元素映射到模型属性,从而极大地简化了处理用户输入的过程,然而,这也成为了攻击的另一种没接,给攻击者提供了一个填充模型属性的机会,右下时候填充的这些属性甚至都没有在输入表单中。

    使用 [Bing] 特性防御重复提交攻击

      1、可以使用Bing白名单来指定模型绑定的字段,比如 [Bing(Include="Name,Comment")]

      也可以使用黑名单来排除禁止绑定的字段,比如 [Bind(Exclude="ID,DateTime")]

      一般情况下,白名单比黑名单更安全一些。

      [Bind(Include="Name,Comment")]

      public class Review{

        public string ID{get;set;}

        public string Name{get;set;}

        public string Comment{get;set;}

      }

      2、另一种方法是使用UpdateModel或者TryUpdateModel方法来接收一个绑定列表,例如:

      UpdateModel(review,"Review",new string[]{"Name","Comment"})

      3、避免直接绑定到数据模型也是有效防御重复提交攻击的一种方式。通过一个视图模型,只缓存允许用户设置的属性来阻止攻击。

  • 相关阅读:
    array_merge() 用法
    session_unset 与 session_destroy 区别
    关联模型中
    TP框架中分页类的使用
    ajax验证用户名是否被注册 ; ajax提交form表单
    点击图片img提交form表单
    输入框蓝光特效
    搭建owncloud私有云
    小米路由器3-R3 刷固件
    mysql的sql_mode合理设置
  • 原文地址:https://www.cnblogs.com/Herzog3/p/6040364.html
Copyright © 2020-2023  润新知