码迷,mamicode.com
首页 > Web开发 > 详细

2、Web应用程序中的安全向量 -- CSRF/XSRF(跨站请求伪造)

时间:2016-11-07 19:47:36      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:自定义   添加   cti   浏览器   hidden   val   数据   ken   nbsp   

CSRF的概念可以分为两类:XSS和混淆代理。

  混淆代理中的“代理”是指用户的浏览器。CSRF是基于浏览器的工作方式运作的。用户登录到一个站点后,用户的信息将会存储在cookie中(会话cookie或者持久cookie),通过这两种cookie中的任何一种,浏览器会告诉站点这是一个真是用户发出的请求。

  使用XSS加混淆代理来实现对用户攻击的能力正式CSRF的核心。

  CSRF使得用户在不知情的情况在,使用自己真实的用户信息,去执行了黑客植入的恶意的脚本或者链接,造成非正常的操作。

阻止CSRF

  使用三种方法来阻止CSRF:

    (1)令牌验证:

      ASP.NET MVC提供了一个阻止CSRF攻击的好办法,它通过验证用户是否自愿地向站点提交数据来达到防御攻击的目的。实现这一方法最简单的方式就是,在每个表单请求中插入一个 包含唯一值的隐藏输入元素。@Html.AntiForgeryToken(),该方法将会生成一个Hidden类型的input控件,并带有一个加密值。该值将与作为会话cookie存储在用户浏览器中的另一个值匹配,在提交表单时,ActionFilter就会验证这两个值是否匹配(在对应的Action上添加ValidateAntiForgeryToken特性)。这种方法能够阻止大部分的CSRF攻击,但不能很好地防御所有的CSRF。

    (2)幂等的GET请求

      如果一个操作是幂等的,那么重复执行多次操作而不改变执行结果。一般来说使用POST请求修改数据库中或者网站上的内容,就可以有效地防御全部的CSRF攻击。

    (3)HttpReferrer验证

      HttpReferrer验证通过ActionFilter处理。需自定义过滤器,并在过滤器中判断filterContext.HttpContext.Request.UrlReferrer.Host是否与站点名称相同。

 

2、Web应用程序中的安全向量 -- CSRF/XSRF(跨站请求伪造)

标签:自定义   添加   cti   浏览器   hidden   val   数据   ken   nbsp   

原文地址:http://www.cnblogs.com/Herzog3/p/6040247.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!