过多提交(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跨平台或扫描二维码关注
过多提交(Over Posting)相关推荐
- SQL注入(SQL Injection)
简介 SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据 ...
- linux 命令自动提示错误信息,Linux基础命令---sar显示系统活动信息
选项说明 -A显示所有报告 -b显示IO状态以及传输速率,有一下值可以显示: tps,每秒发送给物理设备的传输总数.传输是对物理设备的I/O请求.多个逻辑请求可以组合成对设备的单个I/O请求.转移是不 ...
- apache2.4.9 开启path_info访问_【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)...
新建项目 打开VS2015,找到菜单项[文件->新建->项目],打开向导对话框: 注意我们的选择项: 运行平台:.NET FrameWork 4.5 项目模板:ASP.NET Web Ap ...
- Validform 学习笔记---基础知识整理
面对表单的验证,自己写大量的js毕竟不是一个明智的做法.不仅仅是代码很长而且不便于梳理.Validform就是一款开源的第三方验证js的控件,通过添加相应的js以及css能够有效的验证表单,维护起来也 ...
- 开发指南专题十:JEECG微云快速开发平台--表单校验组件ValidForm
开发指南专题十:JEECG微云快速开发平台--表单校验组件ValidForm 10.4Validform对象[方法支持链式调用] 如示例 var demo=$(".formsub" ...
- 表单验证之validform.js使用方法
Validform使用入门 1.引入css 请查看下载文件中的style.css,把里面Validform必须部分复制到你的css中(文件里这个注释 "/*==========以下部分是Va ...
- php form表单验证,Validform表单验证总结篇
近期项目里用到了表单的验证,选择了Validform_v5.3.2. 先来了解一下一些基本的参数: 通用表单验证方法: Demo:$(".demoform").Validform( ...
- Validform使用说明
转载:http://down.51cto.com/data/578513 你没看错,就一行代码搞定整站的表单验证! 1 $(".demoform").Validform(); 效果 ...
- uni-app iOS发布
文章目录 前言 一.制作iOS证书 1. 生成.p12后缀的证书 2. 创建 Identifiers 3. 创建 Profiles 4. 打包IOS App 二.配置 App 1. 创建 App 2. ...
最新文章
- 面试官:Redis新版本开始引入多线程,谈谈你的看法?
- Python 非空即真、列表生成式、三元表达式 day3
- phpcms9-6-0 一键getshell工具
- wps单机无网络版_单平台销量破百万,这个国产单机系列要出网游,还要上主机...
- 简单的脚本控制面试题
- python-turtle库的基本操作
- 飞桨PaddleHub实现皮影戏
- python输出文档内容_python输出文件
- Java的几种路径总结
- 荣耀Magic2 发布:滑盖全面屏、前后6摄、屏下指纹、麒麟980
- WPF管理系统自定义分页控件 - WPF特工队内部资料
- 全新的Kafka controller
- cocos2d-x 之TableView
- 使用INT4/INT类型替换INT8/BIGINT类型能够节省多少磁盘空间?
- 第三(关于set、file、args)
- C++ 常函数和常对象
- c语言安徽省考试成绩查询,2021安徽省考报名入口_安徽省考成绩查询
- 他人的建议和意见对自已做决定的影响
- Leetcode跳跃游戏
- HDU-4069(Squiggly Sudoku)(Dancing Links + dfs)
热门文章
- 加密、解密以及Openssl建立私有CA
- Objective-C 学习记录6--dictionary
- .NET 也有 Husky 了
- 微服务之 EShop on dapr概览
- NET问答: 如何使用 C# 直接从 JSON String 中提取特定值 ?
- C# 合并BitMap图像,生成超大bitmap
- 如何使用 BenchmarkDotNet 对 C# 代码进行基准测试
- Magicodes.IE 在100万数据量下导入导出性能测试
- 五分钟完成 ABP vNext 通讯录 App 开发
- 【实战 Ids4】║ 给授权服务器加个锁——HTTPS配置