跳到主要内容

CSRF 跨站请求伪造

CSRF 的攻击原理是什么?​

  • 类型: 被动攻击;
  • 步骤:
    • 攻击者设置陷阱代码, 诱导已登录用户访问第三方网站;
    • 第三方网站借用户的身份与权限, 向被攻击网站发送跨站请求;
    • 被攻击网站误认为是合法用户的合法请求并执行;
  • 结果: 在用户不知情的情况下完成非法操作;

如何防御 CSRF?​

  • 验证请求来源: 基于 Referer 或同源策略判断请求是否可信;
  • 使用 token: 服务端下发随机 token, 请求必须携带正确 token; 攻击者无法获知该 token 而被拒绝;
  • 验证码: 敏感操作强制验证码, 打断自动发起的请求;
  • 给 cookie 设置 SameSite, 限制跨站请求携带 cookie;

CSRF 与 XSS 有什么区别?​

  • XSS: 攻击对象是用户, 目的是获取用户的敏感信息;
  • CSRF: 攻击对象是应用程序, 目的是伪造用户身份执行非法操作;