过多提交(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

  

  示例代码下载:

  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跨平台或扫描二维码关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/329007.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于ByteBuffer使用解释

转载自 关于ByteBuffer使用解释之前看过相关的ByteBuffer的使用,但是问题是那时还年轻,所以现在有点老了,因此,忘记了,所以决心看源代码了解一番----故作此篇文章。查看ByteBuffer的API,看的我是一头雾水&…

linux 命令 抛后台,在后台运行Linux命令的方法

通常情况下,当你在终端运行一个命令,在你开始输入另外一个命令之前,你必须等待当前命令运行结束。这被称为在前台运行命令,或者前台进程。当一个进程在前台运行时,它占用了你的 shell,并且你可以通过输入设…

.Net 分布式云平台基础服务建设说明概要

1) 背景 建设云平台的基础框架,用于支持各类云服务的业务的构建及发展。 2) 基础服务 根据目前对业务的理解和发展方向,总结抽象出以下几个基础服务,如图所示 3) 概要说明 基础服务的发展会根据业务的发…

当当网头部和尾部——CSS源码

头部 charset "utf-8"; /* CSS Document *//*网页头部导航样式开始*/ .header_top,.header_middle,.header_search{margin-left:auto;margin-right:auto;width:955px;clear:both; } .header_top{border:solid 1px #999;background-image:url(../images/dd_header_bg.…

全球首发免费的MySql for Entity Framework Core

Background 一时兴起,想实现.NET Core下的MySQL ADO层和与Entity Framework Core对接,同时也是非常鄙视某厂商借着目前Oracle官方没有对.NET Core进行支持的时机捞金,然后也是为了学习一下Microsoft的Entity Framework原理,于是这…

麒麟linux百度云,百度网盘 Linux 版发布,搭配优麒麟运行更完美!

百度网盘 Linux 版发布,搭配优麒麟运行更完美!Linuxer 2019年6月21日 暂无评论 阅读 3,363 次近日,百度官宣推出了百度网盘 Linux 版(在此之前已发布 Windows、Android、iPhone、iPad、Windows Phone、Mac 等多个平台的版本),版本号为 Linux …

学习笔记之ByteBuffer使用和实现以及文件内存映射

转载自 学习笔记之ByteBuffer使用和实现以及文件内存映射ByteBuffer和CharBuffer等其它Buffer的直接子类一样,顾名思义,就是存取字节的Buffer。很多数据最终在和底层交互上都是使用了字节,而更大的数据是由字节组合而成。谈到字节的组合&…

当当网上书店头部和尾部——JS源码

头部 $(function($){ // οnmοuseοver"myddang_show(dd_menu_top_down)" οnmοuseοut"myddang_hidden(dd_menu_top_down)"//下拉菜单$("#menu").mouseenter(function(){$("#dd_menu_top_down").slideDown(1000);}).mouseleave(…

SQL注入(SQL Injection)

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

c语言程序设计班档案管理系统报告,C语言班级档案管理系统

《C语言班级档案管理系统》由会员分享,可在线阅读,更多相关《C语言班级档案管理系统(28页珍藏版)》请在人人文库网上搜索。1、c语言程序设计”课程设计报告班级档案管理学生姓名: 王标 刘慧慧 魏枫林 奚亚运 指导教师: 夏 芸 所 在…

深入理解ByteBuffer

转载自 深入理解ByteBufferByteBuffer类是在Java NIO中常常使用的一个缓冲区类,使用它可以进行高效的IO操作,但是,如果对常用方法的理解有错误,那么就会出现意想不到的bug。ByteBuffer类的常用方法 先来看看一个基本的程序public…

c语言倒置存放,c语言倒置

为什么使用人脸识别返回数据为空? 问题现象 上传照片中的人像可能存在横置或倒置等情况。 解决方法 尽量选择纯色无干扰背景,保证图片中人像清晰。 上传的人脸图片要求:侧脸不超过30,抬头低头不超过15。 图片中人脸需要保持竖置正…

当当网新用户注册界面——界面源码

<strong><span style"font-size:32px;color:#ff9966;">所有用到的图片都已上传&#xff0c;请在<a target_blank href"http://download.csdn.net/detail/qq_34137397/9667142">这里</a>下载</span></strong><!DOCT…

dotnetCore增加MiddleWare的Run,Use Map MapThen四个扩展方法

什么是中间件 中间件是在管道中处理Request请求与Responses响应的一种组件&#xff0c;每种组件可以选择是否让Request进入到下一个组件去处理。 译得不好&#xff0c;大家可以自己看原文Middleware 更详细的还可以参照园中大神的作品&#xff1b; 有汤姆大叔的解读ASP.NET 5 &…

Java GC系列(1):Java垃圾回收简介

转载自 Java GC系列&#xff08;1&#xff09;&#xff1a;Java垃圾回收简介这篇教程是系列第一部分。首先会解释基本的术语&#xff0c;比如JDK、JVM、JRE和HotSpotVM。接着会介绍JVM结构和Java 堆内存结构。理解这些基础对于理解后面的垃圾回收知识很重要。 Java关键术语 Ja…

下载的c语言程序代码怎么运行,CFree怎么运行程序 编译运行C语言程序代码的方法...

CFree是一款C语言编译软件&#xff0c;用户可以利用这款软件编译C/C程序 &#xff0c;如果你想要运行已经编写好的C语言代码&#xff0c;只需要几个简单的操作即可实现&#xff0c;如果你还不知道怎么运行&#xff0c;就赶快来看看下面的教程吧&#xff01;1、首先需要先进入到…

docker4dotnet #2 容器化主机

.NET 猿自从认识了小鲸鱼&#xff0c;感觉功力大增。上篇 《docker4dotnet #1 前世今生 & 世界你好》中给大家介绍了如何在Windows上面配置Docker for Windows和Docker Tools for Visual Studio来使用docker协助.NET Core应用的开发&#xff0c;这篇我们来看看如何创建和管…

Java GC系列(2):Java垃圾回收是如何工作的

转载自 Java GC系列&#xff08;2&#xff09;&#xff1a;Java垃圾回收是如何工作的本教程是为了理解基本的Java垃圾回收以及它是如何工作的。这是垃圾回收教程系列的第二部分。希望你已经读过了第一部分&#xff1a;《Java 垃圾回收介绍》。 Java 垃圾回收是一项自动化的过…

c语言程序为什么运行一半就自动关闭了,C语言为什么程序运行一半就出现停止工作...

匿名用户1级2016-04-04 回答有点儿意思。原因却出乎意料的简单。 char *rwtab[27]{"main","if","then","while","do"," static","int"," double","struct","break",&quo…

docker4dotnet #1 – 前世今生 amp; 世界你好

作为一名.NET Developer&#xff0c;这几年看着docker的流行实在是有些眼馋。可惜的是&#xff0c;Docker是基于Linux环境的&#xff0c;眼瞧着那些 java, python, node.js, go 甚至连php程序员都可以docker了&#xff0c;自己还在苦哈哈的装虚拟机&#xff0c;实在是急啊&…