CSRF跨站请求伪造:身份冒用的艺术

作者:Yolo 发布时间: 2026-05-24 阅读量:3

CSRF跨站请求伪造:身份冒用的艺术

CSRF(Cross-Site Request Forgery,跨站请求伪造)是一种利用用户已认证身份执行非预期操作的攻击。与 XSS 不同,CSRF 不窃取用户数据,而是冒充用户发起请求。它被称为"睡梦中的攻击"——用户在不知情的情况下完成了转账、改密等危险操作。


一、什么是 CSRF

CSRF 的核心原理:利用浏览器自动携带 Cookie 的机制,诱导已登录用户访问恶意链接,以用户身份执行非预期操作

攻击前提条件

  1. 用户已登录目标网站(Cookie 中有有效会话)
  2. 浏览器自动携带 Cookie(同源策略不阻止 Cookie 发送)
  3. 目标网站未验证请求来源(缺少 CSRF 防护)

经典攻击场景

1. 用户登录银行网站 bank.com,Cookie 中有了会话令牌
2. 用户未退出,去访问恶意网站 evil.com
3. evil.com 的页面包含:
   
4. 浏览器自动携带 bank.com 的 Cookie 发送请求
5. 银行服务器验证 Cookie 有效,执行转账
6. 用户完全不知情,钱就被转走了

二、CSRF vs XSS 的区别

特性CSRFXSS
攻击目标冒充用户执行操作窃取用户数据/执行脚本
利用机制浏览器自动携带 Cookie注入恶意脚本
需要用户交互访问恶意页面即可通常需要触发脚本
防御重点验证请求来源过滤/转义用户输入
危害类型状态改变(转账、改密)信息泄露、会话劫持

三、CSRF 攻击类型

1. GET 型 CSRF

最简单的形式,通过