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

基于自定义Token授权时,SpringSecurity中为何需禁用CSRF?

为什么基于Token的认证要禁用CSRF防护?

在你的Spring Security配置里禁用CSRF防护,核心原因和JWT认证的无状态特性以及CSRF攻击的原理直接相关:

  • CSRF攻击的本质:CSRF是借助用户浏览器中已保存的会话凭证(通常是Cookie里的Session ID),在用户不知情的情况下发起跨域请求。浏览器会自动在跨域请求中携带目标站点的Cookie,这才让CSRF攻击成为可能。
  • JWT认证的无状态特性:你的配置里设置了sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS),说明系统完全不依赖Session维护用户状态。JWT Token通常放在请求头(比如Authorization: Bearer <token>)或前端localStorage中,浏览器不会自动在跨域请求里主动携带这些内容,也就没有CSRF攻击的基础。
  • 禁用CSRF的必要性:如果不禁用CSRF防护,Spring Security会默认拦截所有非GET请求(POST/PUT/DELETE等),要求请求携带CSRF Token,这会给API调用添不必要的麻烦——你的认证体系根本不需要这套机制,反而会导致合法请求被拦截。

补充说明:如果你的JWT Token存放在Cookie中(且设置了HttpOnly和Secure),那仍需考虑CSRF防护,但你的配置明确是无状态模式,所以禁用CSRF是合理的。

你的完整配置类里的无状态设置和JWT认证逻辑,完全匹配禁用CSRF的场景,这样配置是正确的。

内容的提问来源于stack exchange,提问作者Matvey Androsyuk

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 07:10:44