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

本文深入解析了CSRF(跨站请求伪造)攻击的概念及其工作原理,通过实例展示如何利用用户身份执行非本意操作,并提供了多种防御手段,包括不使用cookie、使用sameSite属性和CSRFTOKEN等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 字段
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值