简介

  过多提交的内容相对比较简单,因此,我只打算把原文中的一些关键信息翻译一下。原文链接如下:

  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

分析

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

  

  即使界面上没有Secret对应的字段,hacker可以通过一些工具(如fildder)或者编写js去发送请求来修改Secret的值。

  

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

防止

  在ASP.NET中,防止过多提交的方法大概有以下几种:

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

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

  2. 使用BindAttribute中的Exclude属性,把不允许映射的字段加到黑名单。

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

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

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

  {

  }

  

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

   public class StudentForm

{

public string LastName { get; set; }

public string FirstMidName { get; set; }

public DateTime EnrollmentDate { get; set; }

}

相关文章:

  • 跨站脚本攻击(XSS)

  • 跨站请求伪造(CSRF/XSRF)

  • 开放重定向(Open Redirection)

  • [译]构建现代Web应用的安全指南

原文地址:http://www.cnblogs.com/Erik_Xu/p/5497501.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

过多提交(Over Posting)相关推荐

  1. SQL注入(SQL Injection)

    简介 SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据 ...

  2. linux 命令自动提示错误信息,Linux基础命令---sar显示系统活动信息

    选项说明 -A显示所有报告 -b显示IO状态以及传输速率,有一下值可以显示: tps,每秒发送给物理设备的传输总数.传输是对物理设备的I/O请求.多个逻辑请求可以组合成对设备的单个I/O请求.转移是不 ...

  3. apache2.4.9 开启path_info访问_【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)...

    新建项目 打开VS2015,找到菜单项[文件->新建->项目],打开向导对话框: 注意我们的选择项: 运行平台:.NET FrameWork 4.5 项目模板:ASP.NET Web Ap ...

  4. Validform 学习笔记---基础知识整理

    面对表单的验证,自己写大量的js毕竟不是一个明智的做法.不仅仅是代码很长而且不便于梳理.Validform就是一款开源的第三方验证js的控件,通过添加相应的js以及css能够有效的验证表单,维护起来也 ...

  5. 开发指南专题十:JEECG微云快速开发平台--表单校验组件ValidForm

    开发指南专题十:JEECG微云快速开发平台--表单校验组件ValidForm 10.4Validform对象[方法支持链式调用] 如示例 var demo=$(".formsub" ...

  6. 表单验证之validform.js使用方法

    Validform使用入门 1.引入css 请查看下载文件中的style.css,把里面Validform必须部分复制到你的css中(文件里这个注释 "/*==========以下部分是Va ...

  7. php form表单验证,Validform表单验证总结篇

    近期项目里用到了表单的验证,选择了Validform_v5.3.2. 先来了解一下一些基本的参数: 通用表单验证方法: Demo:$(".demoform").Validform( ...

  8. Validform使用说明

    转载:http://down.51cto.com/data/578513 你没看错,就一行代码搞定整站的表单验证! 1 $(".demoform").Validform(); 效果 ...

  9. uni-app iOS发布

    文章目录 前言 一.制作iOS证书 1. 生成.p12后缀的证书 2. 创建 Identifiers 3. 创建 Profiles 4. 打包IOS App 二.配置 App 1. 创建 App 2. ...

最新文章

  1. 面试官:Redis新版本开始引入多线程,谈谈你的看法?
  2. Python 非空即真、列表生成式、三元表达式 day3
  3. phpcms9-6-0 一键getshell工具
  4. wps单机无网络版_单平台销量破百万,这个国产单机系列要出网游,还要上主机...
  5. 简单的脚本控制面试题
  6. python-turtle库的基本操作
  7. 飞桨PaddleHub实现皮影戏
  8. python输出文档内容_python输出文件
  9. Java的几种路径总结
  10. 荣耀Magic2 发布:滑盖全面屏、前后6摄、屏下指纹、麒麟980
  11. WPF管理系统自定义分页控件 - WPF特工队内部资料
  12. 全新的Kafka controller
  13. cocos2d-x 之TableView
  14. 使用INT4/INT类型替换INT8/BIGINT类型能够节省多少磁盘空间?
  15. 第三(关于set、file、args)
  16. C++ 常函数和常对象
  17. c语言安徽省考试成绩查询,2021安徽省考报名入口_安徽省考成绩查询
  18. 他人的建议和意见对自已做决定的影响
  19. Leetcode跳跃游戏
  20. HDU-4069(Squiggly Sudoku)(Dancing Links + dfs)

热门文章

  1. 加密、解密以及Openssl建立私有CA
  2. Objective-C 学习记录6--dictionary
  3. .NET 也有 Husky 了
  4. 微服务之 EShop on dapr概览
  5. NET问答: 如何使用 C# 直接从 JSON String 中提取特定值 ?
  6. C# 合并BitMap图像,生成超大bitmap
  7. 如何使用 BenchmarkDotNet 对 C# 代码进行基准测试
  8. Magicodes.IE 在100万数据量下导入导出性能测试
  9. 五分钟完成 ABP vNext 通讯录 App 开发
  10. 【实战 Ids4】║ 给授权服务器加个锁——HTTPS配置