• [9]CSRF你清楚吗?


    是什么

    CSRF(Cross-Site request forgery)跨站请求伪造 你可以这么来理解:攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,添加系统管理员,甚至于购买商品、虚拟货币转账等。

    区别XSS与CSRF

    XSS:利用用户对站点的信任 【对于可以的站点一般会提示是否继续访问,也就是说如果用户不信任一个站点,就不会出现XSS攻击】 【服务器下发的脚本在客户端浏览器执行】 CSRF:利用站点对已经身份认证的信任 结论:不要在网上瞎点,说不定你点击的就是黑客精心准备的攻击链接

    CSRF 漏洞现状

    CSRF 这种攻击方式在2000 年已经被国外的安全人员提出,但在国内,直到06 年才开始被关注,08 年,国内外的多个大型社区和交互网站分别爆出 CSRF 漏洞,如:NYTimes.com(纽约时报)、Metafilter(一个大型的 BLOG 网站),YouTube 和百度 HI……而现在,互联网上的许多站点仍对此毫无防备,以至于安全业界称 CSRF 为“沉睡的巨人”。

    防御手段

    ①检查 HTTP Referer 字段

    每一个请求都一个referer字段,记录请求的来源,后台通过这个字段,可以知道这个请求是否是合法的。这种方法很简单,但是不安全,因为这个referer字段是可以篡改的。

    比如:我们让nginx给我们代理,然后就可以修改referer.

    ②添加校验 token

    由于 CSRF 的本质在于攻击者欺骗用户去访问自己设置的地址,所以如果要求在访问敏感数据请求时,要求用户浏览器提供不保存在 cookie 中,而是服务器发放的token,这个token是攻击者无法伪造的数据作为校验,那么攻击者就无法再运行 CSRF 攻击。

    ③使用验证码

    在敏感的操作前,加上验证码,后台可以通过验证码可以防御CSRF攻击;这时候每次关键操作都是用户自己知道的,主动触发的。

    在微信商户平台,我们配置一些敏感的操作是不是都需要给管理员的手机号发送验证码。这个方法还是很常见的。但是这种做法不是很友好

    更多学习视频学习资料请参考:B站搜索“我们一起学前端” 

  • 相关阅读:
    org.activiti.validation.validator
    【mysql】—— 复合查询
    向量组的秩、矩阵的秩
    【教师节特辑】做个教师节快乐照片墙吧
    SwiftUI 状态管理系统指南
    java多线程基础(上)
    数组的拷贝和反转和扩容与缩减
    vue3中的provide 与 inject
    ffmpeg5及以上-s和像素格式转换 画屏问题
    解决:yarn 无法加载文件 “C:\Users\XXXXX\AppData\Roaming\npm\yarn.ps1,因为在此系统上禁止运行脚本“ 的问题
  • 原文地址:https://blog.csdn.net/qq_35577655/article/details/127707801