美文网首页
浅谈CSRF机制

浅谈CSRF机制

作者: 小陈工 | 来源:发表于2022-06-02 15:14 被阅读0次

最近看了一篇关于csrf机制的文章,觉得很有收获,所以自己总结了一下与大家分享

首先我们要理解一个概念,要从三个方面入手,即是什么?为什么?怎么做?

一、CSRF是什么?

CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。(出自百度百科)

二、CSRF机制是什么?

CSRF验证机制是为了预防CSRF攻击而创立的,它的具体验证方法是:从cookie中获取一个csrf_token的值,再从请求体中获取一个csrf_token的值,二者进行比较,如果两个值相同则验证通过。如果两个值不同,则验证失败,拒绝请求。

三、为什么要用CSRF机制?

       首先我们通过一个案例来了解CSRF的危害:如下图所示,假设用户通过浏览器访问一个银行网站时,浏览器会将cookie中的用户信息发给银行网站,然后用户在银行网站上进行转账操作,网站就接收到用户的POST请求和请求体中的信息,包括转账人和转账金额等。

        这是正常的请求流程,但有些黑客网站会伪造成银行网站(使用相似的域名或IP地址)当用户误点进黑客网站后,黑客网站就会获取到用户的cookie信息,这样他就可以伪造一个转账POST请求发给真正的银行网站,而银行并不知道这个请求是伪造的,就会造成危害和损失。

                                                            图1:未开启csrf防护机制的情况

        上面是没有使用csrf防护机制的情况,如果使用了csrf机制,我们在cookie中和请求体中都加入了csrf-token变量,在上述案例中,当用户误点进黑客网站后,黑客虽然能得到用户的cookie,但他在伪造请求时就无法获取到请求体中的csrf-token值。

        这里有同学会问了,既然我都获取到用户的cookie了,那我直接从cookie中读取csrf-token的值不就行了吗?这里就用到了浏览器的一个机制了,也是csrf防护机制的核心机制,就是同源策略,同源策略就是浏览器限制了不同源(IP)的网站不能相互操作资源。

        所以,由于同源策略的限制,黑客网站根本无法获取到csrf-token的值,但他不死心啊,他还是伪造了请求发给银行网站,企图瞎猫碰死耗子,但csrf-token的值都是加密过的,蒙对的概率无异于中彩票,结果可想而知,银行网站收到请求后通过比对用户cookie和请求体的csrf-token的值就会发现这是伪造的请求,所以果断拒绝。

        这样通过csrf防护机制,就可以避免悲剧的发生,为人类文明的和谐发展贡献一份绵薄之力,实乃幸也!

                                                            图2:开启csrf防护机制

总结:总体来说,csrf防护机制是很有必要的,它可以大大的提高网站的安全性,所以我们在建站时要注意使用这个机制,不积小流,无以成江河,不积跬步,无以至千里。希望今天我的讲解能够让大家有所收获~

最后打一波广告,本人是python全栈工程师,如果各位大佬有什么兼职项目或者工作机会都可以找我哈,感激不尽~

我的QQ:1480456073

相关文章

  • 浅谈CSRF机制

    最近看了一篇关于csrf机制的文章,觉得很有收获,所以自己总结了一下与大家分享 首先我们要理解一个概念,要从三个方...

  • Django的CSRF 保护机制

    目录: 什么是 CSRF? Django 提供的 CSRF 防护机制 Django 里如何使用 CSRF 防护 参...

  • 三、 前端面试题 - 安全篇

    1. XSS、CSRF 浅谈前端安全[https://zhuanlan.zhihu.com/p/108704264...

  • 浅谈CSRF

    前端安全 常见前端安全问题有: xss攻击、 csrf攻击 两种,今天总结一下目前了解的csrf攻击方式以及规避方...

  • 浅谈CSRF

    CSRF是什么? (Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,...

  • CSRF浅谈

    //文章链接 http://www.cnblogs.com/hyddd/archive/2009/04/09/14...

  • CSRF

    reference 讓我們來談談 CSRFCSRF 是什么?浅谈CSRF攻击方式Example of silent...

  • CSRF防护机制

    原理详解:https://www.bilibili.com/video/BV1NJ411n7FV?p=14

  • django 取消csrf限制

    有时候不得不取消django的csrf安全机制,为了ajax的post可以用如下方法: @csrf_exempt

  • protect_from_forgery和skip_forger

    跨站点请求伪造(CSRF)rails 包含一个用于防止CSRF的内置机制,在生成应用程序时,protect_fro...

网友评论

      本文标题:浅谈CSRF机制

      本文链接:https://www.haomeiwen.com/subject/ndyqmrtx.html