Vue/SpringBoot:为什么我的 JSESSIONID 不断变化
P粉163951336
P粉163951336 2023-08-29 19:12:16
[Vue.js讨论组]

我有一个带有 Spring Boot 3.0.1 后端的 vue 应用程序,我想使用 CSRF。 Vue 前端和 Spring Boot 后端由不同的系统提供服务。我打算使用 nginx 反向代理来缓解 CORS 主题,但是无论是否涉及 nginx,都会出现这个问题。

我的 vue 应用程序做的第一件事是请求 csrf 令牌,将其存储在全球范围内,以便在用户会话期间使用它。

当用户登录时,会初始化几个 pinia 存储。但不幸的是,在这些请求期间,每个请求发送的 JSESSIONID Cookie 都会被后端忽略,并发出一个新的 JSESSIONID。在使用应用程序并发出进一步的 GET 请求时,JSESSIONID 不断变化

这使得初始 JSESSIONID 的“全局”存储的 CSRF 令牌当然无效......

“csrf”请求标头:

“登录”标题:

然后突然间,第 5 个请求获得了一个新的 JSESSIONID,尽管我在请求中发送了 JSESSIONID Cookie(由服务器发送 - 为什么?

问题

为什么我的会话不断变化?我的 JSESSIONID 不应该始终保持不变吗?

进行 CSRF 的目的是什么?在发出任何(非 GET?)请求之前请求新令牌? (我的获取使用“凭据:“同源””)

P粉163951336
P粉163951336

全部回复(1)
P粉070918777

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号