CSRF(跨站请求伪造)详解:原理、攻击方式与防御手段

📌 什么是 CSRF?

CSRF(Cross-Site Request Forgery,跨站请求伪造)是一种"偷懒攻击"方式,黑客利用你已经登录的身份,在你不知情的情况下,让你执行某些本不想做的操作。

🔹 你可以把 CSRF 理解成"钓鱼网站 + 偷用身份"!

🎬 真实案例:银行转账攻击

👀 假设你登录了银行网站 bank.com

  1. 你输入密码登录,银行网站给你存了一个 Cookie,之后不需要每次输入密码即可转账。

  2. 黑客创建了一个惨惨的名称叫 bad-hacker.com 的恶意网站。

  3. 你无意中点击了这个恶意链接(比如邮件中的钓鱼网址)。

  4. 该恶意网站偷偷发送如下请求到 bank.com

    复制代码
    <img src="https://bank.com/transfer?to=hacker&amount=1000" />
  5. 你的浏览器自动携带 bank.com 的 Cookie,银行服务器以为是你本人操作,直接执行转账!

🛑 这样,你的银行账户就被黑客利用,钱被转走了!

🔐 CSRF 攻击的核心条件

要发生 CSRF 攻击,需要满足以下条件:

  1. 用户已登录,浏览器里有 Cookie(如已登录银行网站)。

  2. 网站通过 Cookie 验证身份(没有要求额外的身份验证)。

  3. 服务器没有额外的 CSRF 保护机制(如 CSRF Token)。

🎯 如何防止 CSRF?

✅ 方法 1:使用 CSRF Token

银行可以要求所有"敏感操作"请求都带上一个额外的 CSRF Token,只有正确的 Token,才会执行操作。

复制代码
<form action="https://bank.com/transfer" method="POST">
    <input type="hidden" name="csrf_token" value="a1b2c3d4">
    <button type="submit">转账</button>
</form>

🔍 为什么 CSRF Token 有效?

  • Token 只能在 bank.com****生成,黑客无法获取。

  • 黑客无法跨站访问 bank.com****的 Token(受同源策略保护)。

  • Token 通常是动态变化的,避免被黑客重复利用。

✅ 方法 2:检查 Referer 头

银行可以检查请求来源,确保请求来自自己的网站。

复制代码
Referer: https://bank.com/

如果请求来源是 bad-hacker.com,服务器就拒绝操作。

银行可以在设置 Cookie 时,要求 Cookie 只能用于同源请求。

复制代码
Set-Cookie: sessionid=abc123; SameSite=Strict

这样,即使黑客诱骗你访问 bad-hacker.com,该网站也无法使用你的 Cookie,攻击失效!

📝 总结

问题 答案
CSRF 是什么? 黑客利用你的身份,在你不知情的情况下,让你执行敏感操作。
CSRF 的攻击流程? 你登录 bank.com → 访问 bad-hacker.com → 浏览器带着 Cookie 访问 bank.com → 服务器误以为你本人操作。
如何防御 CSRF? 使用 CSRF Token、检查 Referer、SameSite Cookie 保护。

🔄 CSRF 是一个常见的安全漏洞,但只要合理使用防御手段,就能有效防止攻击!

💡 你学会了吗?如果有不理解的地方,可以留言交流哦!

相关推荐
汉堡包0011 天前
【靶场练习】--DVWA第三关CSRF(跨站请求伪造)全难度分析
前端·安全·csrf
余防2 天前
CSRF跨站请求伪造
前端·安全·web安全·csrf
修炼果4 天前
为什么使用 Redis 存储Oauth的state 参数,可有效防止 CSRF 攻击
数据库·redis·csrf
emma羊羊4 天前
【CSRF】防御
前端·网络安全·csrf
emma羊羊4 天前
【CSRF】跨站请求伪造
前端·网络安全·csrf
阿龟在奔跑1 个月前
Spring Security 传统 web 开发场景下开启 CSRF 防御原理与源码解析
java·spring·web安全·java-ee·csrf
xyphf_和派孔明2 个月前
关于Web前端安全防御CSRF攻防的几点考虑
前端·安全·csrf
桑晒.2 个月前
CSRF漏洞原理及利用
前端·web安全·网络安全·csrf
枷锁—sha2 个月前
【DVWA系列】——CSRF——Medium详细教程
android·服务器·前端·web安全·网络安全·csrf
枷锁—sha2 个月前
跨站请求伪造漏洞(CSRF)详解
运维·服务器·前端·web安全·网络安全·csrf