初识CSRF
初识CSRF
murenshan 发表于3年前
初识CSRF
  • 发表于 3年前
  • 阅读 24
  • 收藏 1
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

摘要: 今天学习CSRF,先认识原理部分,后续上实验部分

CSRF(先来个概念认识)

Cross-site request forgery跨站请求伪造,也被称为“one click attack”或者session riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS), 但它与XSS非常不同,并且攻击方式几乎相左。XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击 相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。(来自百度百科)

二.CSRF可以做什么?

  你这可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......造成的问题包括:个人隐私泄露以及财产安全。


查阅相关文献(参考白帽子讲web安全)

三、浏览器的cookie策略:

浏览器中cookie分为:

        1、session cookie  (临时cookie):没有expire时间,浏览器关闭就失效;session cookie保存在浏览器内存空间中;

         2、third-party cookie:本地cookie:本地cookie是保存在本地,只有到指定的expire时间过期之后才失效;

不同浏览器安全策略:“如果浏览器从一个域的页面要加载另一个域的资源,由于安全性,有些浏览器会阻止third-part cookie”

注意:在同一个浏览器进程中,session cookie将被发送,third-party cookie未必被发送;所以,产生CSRF攻击一般大多发送session cookie;

CSRF不仅可以通过GET也可以通过模拟POST数据,使用javascript进行提交;(白帽讲web安全有实例)

(http://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html有相关实例)

CSRF的防御:

一、验证码:

        验证码被认为是对抗CSRF攻击最简洁而最有效的防御方法;强制用户必须与应用进行交互,防止了一些恶意跨站请求造成的威胁;

    缺陷:并非所有的地方都能用验证码,影响用户体验;

二、Referer check

    Referer check 在互联网中主要是“防盗链”;用于检查是否为合法的源;

    缺陷:服务器并非什么时候都能取到referer;很多用户出于隐私保护考虑,限制referer。在某些情况下,浏览器也不会发送referer,如:从https 跳转到HTTP,出于安全的考虑,浏览器不会发送referer;

    注意:无法依赖于referer check 作为防御CSRF的主要手段。但是通过referer check来监控CSRF攻击的发生,倒是一个可行方法;

(referer 实验配置后续补上)

三、通过anti CSRF Token

    CSRF本质:重要操作的所有参数都是可以被攻击者猜测到的;

    在服务器上session中存下一个随机的token,然后,将token同时保存在客户端的hidden input 标签使用POST方式提交给服务器做验证;每个token在一定时间内有效。当然如果客户端post之后验证完token要进行销毁、或者保存一段时间;

(有些是相关重要页面保存一个token);

注意:token这种方式也只是仅仅用于防御CSRF。其实,事实上token是很容易被窃取的;

    当网站同时存在XSS漏洞时,这个方案就会变成无效,因为XSS可以模拟客户端浏览器执行任意操作,在XSS攻击下,完全可以请求页面后,读取TOKEN值,然后模拟构造出一个合法的请求=====》称之为XSRF;

    XSS带来的问题,应该使用XSS的防御方案给予解决,否则,CSRF 的token防御就是形同虚设了;

(实验后补-------未完待续







共有 人打赏支持
粉丝 0
博文 2
码字总数 2201
×
murenshan
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: