CSRF(Cross-Site Request Forgery,跨站请求伪造)是一种利用用户已登录的身份,在用户不知情的情况下执行非预期操作的攻击方式。以下是其核心概念和防御逻辑:
1. CSRF 的核心原理
- 攻击前提:
用户已登录某个网站(如银行、社交平台),且网站未对请求来源进行严格验证。 - 攻击流程:
- 用户访问恶意网站(如伪装成抽奖页面的钓鱼网站)。
- 恶意网站中隐藏一个请求(如转账、发消息的按钮或图片链接)。
- 用户点击后,浏览器自动携带目标网站的 Cookie(如登录态)发起请求。
- 目标网站验证 Cookie 合法,执行恶意操作(如转账、删除数据)。
示例场景:
假设用户登录了银行网站 bank.com,攻击者诱导用户访问恶意网站 malicious.com,其中包含以下代码:
<img src="https://bank.com/transfer?to=attacker&amount=10000" />
当用户加载该页面时,浏览器会自动发送请求到 bank.com/transfer,并携带用户在 bank.com 的登录 Cookie,导致转账操作被触发。
2. CSRF 攻击的特点
- 隐蔽性:攻击请求通常伪装成合法操作(如图片加载、表单提交)。
- 依赖 Cookie:攻击依赖浏览器自动携带目标网站的 Cookie。
- 无用户交互:用户可能仅需访问恶意页面即可触发攻击。