• 阻止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特效既可以放在模型类上,也可以放在控制器上。

  1.   白名单方法允许绑定的字段如:[Bind(Include=“Name,Age”)]
  2.   或是黑名单禁止绑定的字段:[Bind(Exclude=“StduentID”)]
  3.   或是直接绑定到视图模型,直接包含自己想要绑定的字段

[ASP.NET MVC]笔记(三) 成员资格、授权和安全性的更多相关文章

  1. MVC中的成员资格,授权,安全性

    使用 Authorize 特性登录 Authorize 是 ASP.NET MVC 自带的默认授权过滤器, 可用来限制用户对操作方法的访问. 保护控制器操作 Authorize 特性在表单身份验证和 ...

  2. ASP.NET MVC 过滤器(三)

    ASP.NET MVC 过滤器(三) 前言 本篇讲解行为过滤器的执行过程,过滤器实现.使用方式有AOP的意思,可以通过学习了解过滤器在框架中的执行过程从而获得一些AOP方面的知识(在顺序执行的过程中, ...

  3. ASP.NET MVC 视图(三)

    ASP.NET MVC 视图(三) 前言 上篇对于Razor视图引擎和视图的类型做了大概的讲解,想必大家对视图的本身也有所了解,本篇将利用IoC框架对视图的实现进行依赖注入,在此过程过会让大家更了解的 ...

  4. ASP.NET MVC 路由(三)

    ASP.NET MVC路由(三) 前言 通过前两篇的学习会对路由系统会有一个初步的了解,并且对路由系统中的Url规则有个简单的了解,在大家的脑海中也有个印象了,那么路由系统在ASP.NETMVC中所处 ...

  5. asp.net mvc笔记一,最小的MVC工程

    Asp.net MVC项目默认会引用很多第三方插件,特别是现在的5.0,默认示例项目就几十M,搞得都不知道那些才是MVC必须的,是重点,那些是可有可无的. 今天我们就来试验一下,看看一个最小的MVC工 ...

  6. (转)Asp.Net MVC中身份认证和授权

    MVC自带的ActionFilter 在Asp.Net WebForm的中要做到身份认证微软为我们提供了三种方式,其中最常用的就是我们的Form认证,需要配置相应的信息.例如下面的配置信息: < ...

  7. ASP.NET MVC 第三回 Controller与View

    这节我们让ASP.NET MVC真正的跑起来 一.新建Controller 首先我们自己新建一个新的Controller在Controllers上点右键,添加,Controller选项   之后出现一 ...

  8. Pro ASP.NET MVC –第三章 MVC模式

    在第七章,我们将创建一个更复杂的ASP.NET MVC示例,但在那之前,我们会深入ASP.NET MVC框架的细节:我们希望你能熟悉MVC设计模式,并且考虑为什么这样设计.在本章,我们将讨论下列内容 ...

  9. ASP.NET MVC进阶三

    一.ASP.NET MVC中的AJAX应用 首先,在ASP.NET MVC中使用自带的ajax功能,必须要导入2个js文件(顺序不能颠倒): ASP.NET MVC提供了2个常用的ajax辅助方法. ...

随机推荐

  1. C++ STL set详解

    一.解释 p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 120%; text-align: justi ...

  2. Jersey实现Restful服务

    jersey 是基于Java的一个轻量级RESTful风格的Web Services框架.以下我基于IDEA实现Restful完整Demo. 1.创建maven-web工程,后面就是正常的maven工 ...

  3. RabbitMQ入门-Topic模式

    上篇<RabbitMQ入门-Routing直连模式>我们介绍了可以定向发送消息,并可以根据自定义规则派发消息.看起来,这个Routing模式已经算灵活的了,但是,这还不够,我们还有更加多样 ...

  4. svn本地目录结构for window

    演示内容: 使用svn目录结构来进行备份正式版和修复版本,最终合并修复版本.主干上的版本. 使用工具: visualSVN server 服务器软件工具 TortoiseSVN客户端工具 1.服务器的 ...

  5. react入门之使用webpack搭配环境(一)

    react入门之搭配环境(一) 如果你想直接上手开发,而跳过这些搭配环境的繁琐过程,推荐你使用官方的create-react-app命令 npm install -g create-react-app ...

  6. [算法题] Remove Duplicates from Sorted Array ii

    题目内容 本题来源LeetCode Follow up for "Remove Duplicates": What if duplicates are allowed at mos ...

  7. 【开源社交系统研发日记】利用 Docker 包 Laradock 服务器部署 Laravel & ThinkSNS+ 等程序实战(多项目)

    什么是ThinkSNS+ ThinkSNS(简称TS),一款全平台综合性社交系统,为国内外大中小企业和创业者提供社会化软件研发及技术解决方案,目前最新版本为ThinkSNS+. 前段时间不知道抽上面疯 ...

  8. mysql中kill掉所有锁表的进程

    --mysql中kill掉所有锁表的进程 --------------------------------2014/05/20 在数据库的管理中,我们经常会碰到锁表的问题,看一下进程列表. mysql ...

  9. 项目管理利器---Maven

    Maven快速入门 maven介绍 maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建.报告和软件的项目管理工具.简单来说,maven可以帮助我们更有效的管理项目,也是一套 ...

  10. github的基本使用

    1. 在github官网注册账号 https://github.com/ 2. 下载git for window    https://git-for-windows.github.io/ 3. gi ...