Vue/SpringBoot:为什么我的 JSESSIONID 不断变化
P粉163951336
P粉163951336 2023-08-29 19:12:16
0
1
693
<p>我有一个带有 Spring Boot 3.0.1 后端的 vue 应用程序,我想使用 CSRF。 Vue 前端和 Spring Boot 后端由不同的系统提供服务。我打算使用 nginx 反向代理来缓解 CORS 主题,但是无论是否涉及 nginx,都会出现这个问题。</p> <p>我的 vue 应用程序做的第一件事是请求 csrf 令牌,将其存储在全球范围内,以便在用户会话期间使用它。</p> <p>当用户登录时,会初始化几个 pinia 存储。但不幸的是,在这些请求期间,每个请求发送的 JSESSIONID Cookie 都会被后端忽略,并发出一个新的 JSESSIONID。在使用应用程序并发出进一步的 GET 请求时,JSESSIONID 不断变化</p> <p>这使得初始 JSESSIONID 的“全局”存储的 CSRF 令牌当然无效......</p> <p>“csrf”请求标头:</p> <p>“登录”标题:</p> <p>然后突然间,第 5 个请求获得了一个新的 JSESSIONID,尽管我在请求中发送了 JSESSIONID Cookie(由服务器发送 - 为什么?</p> <h2>问题</h2> <p>为什么我的会话不断变化?我的 JSESSIONID 不应该始终保持不变吗?</p> <p>进行 CSRF 的目的是什么?在发出任何(非 GET?)请求之前请求新令牌? (我的获取使用“凭据:“同源””)</p>
P粉163951336
P粉163951336

全部回复(1)
P粉070918777

我的SecurityConfig中有.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS),这导致了麻烦......据我所知,删除它解决了CSRF的使用。 p>

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板