• 17. CSRF攻击(从入门到入狱)


    1. CSRF攻击

    1.1 什么是CSRF

    CSRF(Cross-site request forgery,跨站请求伪造)

    它是指攻击者利用了用户的身份信息,执行了用户非本意的操作

    1.2 个人理解

    1. .假设我们登陆了银行网站,输入了正确的用户名和密码,网站会返回给我们一个cookie,cookie中记录了一个token令牌表示用户已经登录过,客户端会记录下这个cookie及域名,便于下次访问携带。
    2. 攻击者:做了一个链接,用各种标题引诱看到的人点击进去(例 :标题:惊天大瓜xxx)
    3. 用户看到攻击者发送的链接,并且点击,链接后会响应一个页面(只要给了响应,就完成了攻击!)
    4. 这个页面中包含危险代码如:https://bank.com/transfer?to=“张三”&money=“100000”,而请求的链接正是银行转账的接口to=‘转账给谁’,money=‘多少钱’,
      此时就会请求银行的服务器,请求本身没有问题,但是因为请求的地址(bank.com)和之前存储的cookie所保存的地址相匹配,请求时就会带上之前存储的cookie,在服务端完成验证,转账成功!

    在这里插入图片描述

    2. 防御方式

    防御手段防御力问题
    不使用cookie⭐️⭐️⭐️⭐️⭐️兼容性略差
    ssr会遇到困难,但可解决
    (可使用localstorage存储)
    使用sameSite⭐️⭐️⭐️⭐️兼容性差
    容易挡住自己人
    (浏览器属性,strict:严格/lax:宽松/none:不设置)
    使用csrf token⭐️⭐️⭐️⭐️⭐️获取到token后未进行操作仍然会被攻击
    (推荐使用,第一次请求网站时,多返回一个token,此token只能使用一次。点击转账使用后就过期。缺点:点击转账前,token未过期,遭受到攻击【概率很小】)
    使用referer防护⭐️⭐️过去很常用,现在已经发现漏洞
    (访问时,检查来访网站)

    3. 面试题

    介绍 csrf 攻击

    CSRF 是跨站请求伪造,是一种挟制用户在当前已登录的Web应用上执行非本意的操作的攻击方法

    它首先引导用户访问一个危险网站,当用户访问网站后,网站会发送请求到被攻击的站点,这次请求会携带用户的cookie发送,因此就利用了用户的身份信息完成攻击

    防御 CSRF 攻击有多种手段:

    1. 不使用cookie
    2. 为表单添加校验的 token 校验
    3. cookie中使用sameSite字段
    4. 服务器检查 referer 字段
  • 相关阅读:
    Nginx反向代理与负载均衡与504错误
    Python Socket 基础多用户编程
    真福利!阿里师兄抄送的内部并发编程核心知识手册
    LlamaFS自组织文件管理器
    一起学习SQL中各种join以及它们的区别
    面试算法11:0和1个数相同的子数组
    使用 com.jacob.activeX 库实现 Word 到 PDF
    怎样学习做自媒体?
    35+女生离开互联网大厂后变得更有钱更自由了
    http的几种方法
  • 原文地址:https://blog.csdn.net/weixin_44247866/article/details/126294263