• 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 字段
  • 相关阅读:
    爬虫如何选择工具和编程语言
    站群服务器对于网站优化有哪些好处?
    鼠标拖拽拖动盒子时,与盒子内某些点击事件冲突问题解决
    南大通用GBase8s 常用SQL语句(239)
    Java8实战-总结19
    mybatis04关联关系映射
    Arduino驱动DFPlayer Mini MP3模块
    编写算法对输入的一个整数,判断它能否被 3,5,7 整除
    加密算法小结
    C/C++ 工程工具链搭建
  • 原文地址:https://blog.csdn.net/weixin_44247866/article/details/126294263