[ASP.NET MVC]笔记(三) 成员资格、授权和安全性
- 阻止CSRF(跨站请求伪造)
ASP.NET MVC提供了一个阻止CSRF攻击的好方法
在每个提交的表单中包含
@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
//调用@Html.AntiForgeryToken()生成一个防伪标记
@Html.AntiForgeryToken()
<input type="text" name="text"/>
<input type="submit" value="提交" />
}
在请求的控制器的控制器操作上声明[ValidateAntiForgeryToken]特性
[ValidateAntiForgeryToken]
public ActionResult Index(string text)
{
.........
return View();
}
- HttpReferrer验证
验证提交表单的客户端是否在目标站点上
public class IsPostendFromThisSiteAttribute :AuthorizeAttribute
{
public override void OnAuthorize(AuthorizationContext filterContext)
{
if(filterContext.httpContext!=null)
{
if(filterContext.httpContext.Request.UrlReferrer==null)
{
throw new System.Web.HttpException("无效提交");
}
if(filterContext.httpContext.Request.UrlReferrer.Host=!="mysite.com")
{
throw new System.Web.HttpException("非法的提交站点"");
}
}
}
}
然后再添加自定义的过滤器
[IsPostedFromThisSite]
public ActionResult Register(…)
- 使用HttpOnly防止Cookie被盗窃获取
可以在程序中为编写的每个cookie单独设置,告知浏览器除了服务器能修改设置Cookie之外,其他的操作均无效
Respone.Cookies["password"]="123456"; Respone.Cookies["password"].HttpOnly=true;
- 使用Bind特效防御重复提交攻击
Bind特效既可以放在模型类上,也可以放在控制器上。
- 白名单方法允许绑定的字段如:[Bind(Include=“Name,Age”)]
- 或是黑名单禁止绑定的字段:[Bind(Exclude=“StduentID”)]
- 或是直接绑定到视图模型,直接包含自己想要绑定的字段
[ASP.NET MVC]笔记(三) 成员资格、授权和安全性的更多相关文章
- MVC中的成员资格,授权,安全性
使用 Authorize 特性登录 Authorize 是 ASP.NET MVC 自带的默认授权过滤器, 可用来限制用户对操作方法的访问. 保护控制器操作 Authorize 特性在表单身份验证和 ...
- ASP.NET MVC 过滤器(三)
ASP.NET MVC 过滤器(三) 前言 本篇讲解行为过滤器的执行过程,过滤器实现.使用方式有AOP的意思,可以通过学习了解过滤器在框架中的执行过程从而获得一些AOP方面的知识(在顺序执行的过程中, ...
- ASP.NET MVC 视图(三)
ASP.NET MVC 视图(三) 前言 上篇对于Razor视图引擎和视图的类型做了大概的讲解,想必大家对视图的本身也有所了解,本篇将利用IoC框架对视图的实现进行依赖注入,在此过程过会让大家更了解的 ...
- ASP.NET MVC 路由(三)
ASP.NET MVC路由(三) 前言 通过前两篇的学习会对路由系统会有一个初步的了解,并且对路由系统中的Url规则有个简单的了解,在大家的脑海中也有个印象了,那么路由系统在ASP.NETMVC中所处 ...
- asp.net mvc笔记一,最小的MVC工程
Asp.net MVC项目默认会引用很多第三方插件,特别是现在的5.0,默认示例项目就几十M,搞得都不知道那些才是MVC必须的,是重点,那些是可有可无的. 今天我们就来试验一下,看看一个最小的MVC工 ...
- (转)Asp.Net MVC中身份认证和授权
MVC自带的ActionFilter 在Asp.Net WebForm的中要做到身份认证微软为我们提供了三种方式,其中最常用的就是我们的Form认证,需要配置相应的信息.例如下面的配置信息: < ...
- ASP.NET MVC 第三回 Controller与View
这节我们让ASP.NET MVC真正的跑起来 一.新建Controller 首先我们自己新建一个新的Controller在Controllers上点右键,添加,Controller选项 之后出现一 ...
- Pro ASP.NET MVC –第三章 MVC模式
在第七章,我们将创建一个更复杂的ASP.NET MVC示例,但在那之前,我们会深入ASP.NET MVC框架的细节:我们希望你能熟悉MVC设计模式,并且考虑为什么这样设计.在本章,我们将讨论下列内容 ...
- ASP.NET MVC进阶三
一.ASP.NET MVC中的AJAX应用 首先,在ASP.NET MVC中使用自带的ajax功能,必须要导入2个js文件(顺序不能颠倒): ASP.NET MVC提供了2个常用的ajax辅助方法. ...
随机推荐
- mysql-python 安装
[root@localhost ~]# [root@localhost ~]# [root@localhost ~]# gcc -v 查看是否安装gcc 若报错则未安装 [root@localh ...
- 剑指offer--二叉树的后序遍历
思路:对于一个二叉树的后序遍历序列来说,最后一个数一定是根节点,然后前面的数中,从最开始到第一个大于根节点的数都是左子树中的数,而后面到倒数第二个数应该都是大于根节点的,是右子树,如果后面的数中有小于 ...
- 开源蜘蛛集合(转自haizhiguang博客,链接:http://blog.csdn.net/haizhiguang/article/details/20209573)
各种蜘蛛: Heritrix 点击次数:1458 Heritrix是一个开源,可扩展的web爬虫项目.Heritrix设计成严格按照robots.txt文件的排除指示和META robots标签. ...
- 程序设计入门——C语言 习题汇总
<img width="108" height="40" alt="浙江大学" src="http://imgsize.ph ...
- websocket 70K连接测试
websocket 70K连接测试 最近使用socket.io做了一个实时应用,实时性.稳定性还是很让人满意的.如果拿socket.io来做小型应用,综合效率应该是最高的.但是网上少有socket.i ...
- 采药 NOIP 2005 普及组
题目描述 辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师.为此,他想拜附近最有威望的医师为师.医师为了判断他的资质,给他出了一个难题.医师把他带到一个到处都是草药的山洞里对他说:" ...
- 玩转JS系列之代码加载篇
从前我们这样写js <script type="text/javascript"> function a(){ console.log('a init');}funct ...
- [js高手之路] 跟GhostWu一起封装一个字符串工具库-扩展字符串位置方法(4)
本文,我们接着之前的框架继续扩展,这次扩展了一共有5个与字符串位置相关的方法 between( left, right ) 返回两个字符串之间的内容, 如果第二个参数没有传递,返回的是找到的第一个参数 ...
- RabbitMQ --- Routing(路由)
目录 RabbitMQ --- Hello Mr.Tua RabbitMQ --- Work Queues(工作队列) RabbitMQ --- Publish/Subscribe(发布/订阅) 前言 ...
- jquery 获取及设置input各种类型的值 (转)
jQuery操作input值总结 获取选中的值 获取一组radio被选中项的值 var item = $("input[@name=items]:checked").val(); ...