You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot REST API结合React架构下是否需启用CSRF Token?

CSRF Token 相关问题解答

1. 登录/注册表单需要启用CSRF Token吗?

需要。登录、注册这类操作会直接创建或变更用户的认证状态,属于敏感的状态变更操作。攻击者可以构造恶意页面,诱导用户访问后自动提交伪造的登录/注册请求,利用浏览器的自动提交特性发起CSRF攻击——比如强制用户登录攻击者预设的账号,或者在用户不知情的情况下完成注册操作。因此,登录/注册表单必须启用CSRF Token防护。

2. Access Token存内存、Refresh Token存HttpOnly Cookie的场景需要CSRF Token吗?

要分场景判断:

  • 使用内存中Access Token的接口:不需要。Access Token存在前端内存里,攻击者无法通过跨域手段获取到,且跨域请求中无法伪造Authorization请求头(受浏览器同源策略限制),这类接口不存在CSRF攻击风险。
  • 刷新Token的接口:必须启用CSRF Token。Refresh Token存在HttpOnly Cookie中,浏览器会自动在请求时携带这个Cookie。攻击者可以构造恶意页面,诱导已登录用户访问,此时浏览器会自动携带用户的Refresh Token发起刷新请求,进而获取新的Access Token和Refresh Token,完全符合CSRF攻击的场景,所以这个接口必须加CSRF防护。

3. 已配置CORS仅允许localhost:3000,还需要CSRF Token吗?

需要。CORS和CSRF防护是完全不同的机制,不能互相替代:

  • CORS的作用是限制哪些域名可以发起跨域请求,以及能否读取响应内容,但它无法阻止浏览器自动发送带有Cookie的请求。比如攻击者构造的恶意页面发起刷新Token的请求,浏览器会自动携带用户的Refresh Token Cookie,即使CORS配置不允许该域名的请求,请求依然会到达后端并被处理——只是前端无法读取响应结果,但攻击已经完成了。
  • 因此,即使配置了严格的CORS规则,涉及到Cookie自动携带的敏感操作(比如刷新Token、登录),依然需要启用CSRF Token防护。

内容的提问来源于stack exchange,提问作者Study Planet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 13:05:25