CSRF 跨站请求伪造
CSRF 的攻击原理是什么?
- 类型: 被动攻击;
- 步骤:
- 攻击者设置陷阱代码, 诱导已登录用户访问第三方网站;
- 第三方网站借用户的身份与权限, 向被攻击网站发送跨站请求;
- 被攻击网站误认为是合法用户的合法请求并执行;
- 结果: 在用户不知情的情况下完成非法操作;
如何防御 CSRF?
- 验证请求来源: 基于
Referer或同源策略判断请求是否可信; - 使用 token: 服务端下发随机 token, 请求必须携带正确 token; 攻击者无法获知该 token 而被拒绝;
- 验证码: 敏感操作强制验证码, 打断自动发起的请求;
- 给 cookie 设置
SameSite, 限制跨站请求携带 cookie;
CSRF 与 XSS 有什么区别?
- XSS: 攻击对象是用户, 目的是获取用户的敏感信息;
- CSRF: 攻击对象是应用程序, 目的是伪造用户身份执行非法操作;