你所不知道的CSRF攻击

CSRF到底是什么?

跨站请求伪造(Cross-site request forgery):是一种挟制用户在当前已登陆的Web应用程序上执行非本意操作的网络攻击方法,也被称为one-click attack或者session riding,通常缩写为CSRF或者XSRF。

那么请说人话:CSRF是一种网络攻击方式,可以在用户毫不知情的情况下以用户的名义伪造请求发送给受攻击站点(指的是我们日常通过账号密码等授权登陆的网站),从而使用户在不知情或非本意的情况下执行权限内的操作,比如以你的名义发送邮件、发消息、盗取你的账号、添加系统管理员,甚至于购买商品、虚拟货币转账等等,具有很大的危害性。
由于浏览器曾今被认证过,所以被访问的网站会认为是真正的用户操作而去执行。这就利用了web中用户身份验证的一个漏洞:简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。

CSRF攻击原理

CSRF攻击原理如下图所示。其中Web A为存在CSRF漏洞的网站,Web B为攻击者构建的恶意网站,User C为Web A网站的合法用户,同时User C也是倒霉蛋受害者。

CSRF攻击原理

从上图可以看出,要完成一次CSRF攻击,倒霉蛋受害者必须依次完成以下几个步骤:
1. 用户C打开浏览器,访问受信任网站A,输入用户名密码请求登陆网站A;
2. 在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A;
这时候你如果问我什么是Cookie,麻溜的去google好吗!我知道我这样说你一定会打我,那么我还是告诉你吧 :)


什么是Cookie:是浏览器访问服务器后,服务器传给浏览器的一段数据,用来记录某些当页面关闭或者刷新后仍然需要记录的信息。浏览器会将这段数据保存,不会轻易删除。此后每次浏览器访问该服务器,都必须带上这段数据。Cookie一般有两个作用:

  • 识别用户身份
  • 记录历史

3. 用户未退出网站A之前,在同意浏览器中,打开一个Tab页访问网站B;
4. 网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方网站A;
5. 浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发送请求。网站A并不知道该请求实际上是由B发起的,所以会根据用户C的Cookie信息以C的权限处理该请求,导致来自网站B的恶意代码被执行。

你千万不要问我是不是如果不登录A网站或者不在登录A网站的同时去访问B网站就不会受到CSRF攻击了。你当人坏蛋傻?
首先,你不能保证你登录了一个网站之后,不在打开另一个Tab页面并访问其他网站。
其次,你不能保证你关闭浏览器之后,你本地的Cookie立刻过期,你上次的会话已经结束。
最后,上述中所谓的攻击网站,很可能就是一个钓鱼网站或者黄色网站。
如果你拍着胸脯保证,那么请你赶紧的Alt+f4关闭这个窗口 :)

采取什么样的防范措施?

来来来,我们先从根源出发,anti-csrf-token方案(校验token)

  1. 服务端在收到路由请求时,生成一个随机数,在渲染请求页面是把随机数埋入页面(一般埋入form表单内)。
  2. 服务端设置setCookie,把该随机数作为cookie或者session种入用户浏览器。
  3. 当用户发送GET或POST请求时带上_csrf_token参数(对于form表单直接提交即可,因为会自动把当前表单内所有的input提交给后台,包括_csrf_token)。
  4. 后台在接受到请求后解析请求的cookie获取_csrfz-token的值,然后和用户请求提交的_csrf_token做个比较,如果相等表示请求合法。
    建议:少用GET方法。假如攻击者在我们的网站上传了一张图片,用户在加载图片时实际上是向攻击者的服务器发送了请求,这个请求会带有referer表示当前图片所在页面的URL。而如果使用GET方式接口的话攻击者会轻易的获取_csrf_token,短时间可以使用这个token来操作其他GET接口。

结语:

请大家养成良好上网习惯,不要轻易点击链接或图片,及时退出长时间不使用的已登录账户,安装防护软件并及时更新:)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,117评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,963评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,897评论 0 240
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,805评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,208评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,535评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,797评论 2 311
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,493评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,215评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,477评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,988评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,325评论 2 252
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,971评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,807评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,544评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,455评论 2 266

推荐阅读更多精彩内容