乐闻世界logo
搜索文章和话题

什么是 CSRF 攻击,它是如何工作的?

2月21日 16:10

CSRF(Cross-Site Request Forgery,跨站请求伪造)是一种网络攻击方式,攻击者诱导用户在已认证的网站上执行非预期的操作。

工作原理

  1. 用户登录:用户在目标网站(如银行网站)登录,服务器创建会话并返回 Cookie
  2. Cookie 存储:浏览器将该网站的 Cookie 存储在本地
  3. 访问恶意网站:用户访问攻击者控制的恶意网站
  4. 发送请求:恶意网站包含指向目标网站的请求(如表单提交、AJAX 请求)
  5. 自动携带 Cookie:浏览器自动发送目标网站的 Cookie
  6. 执行操作:服务器验证 Cookie 有效,执行请求的操作

攻击条件

  • 用户已登录目标网站
  • 目标网站使用 Cookie 进行身份验证
  • 浏览器自动发送 Cookie
  • 目标网站没有其他防护机制

常见攻击场景

  • 银行转账
  • 修改密码
  • 删除数据
  • 发送邮件
  • 添加管理员账户

防御措施

  1. CSRF Token:在表单中添加随机 Token,服务器验证
  2. SameSite Cookie:设置 Cookie 的 SameSite 属性
  3. 验证 Referer/Origin:检查请求来源
  4. 双重提交 Cookie:在 Cookie 和请求参数中都包含 Token
  5. 自定义 Header:使用自定义 Header 进行验证

与 XSS 的区别

  • CSRF:利用用户的身份,不需要注入脚本
  • XSS:注入恶意脚本,可以窃取 Cookie 或执行任意操作

CSRF 攻击利用了浏览器的自动 Cookie 发送机制,是 Web 应用安全的重要威胁之一。

标签:CSRF