Vue/SpringBoot: JSESSIONID が変化し続けるのはなぜですか
P粉163951336
P粉163951336 2023-08-29 19:12:16
0
1
481

Spring Boot 3.0.1 バックエンドを備えた vue アプリケーションがあり、CSRF を使用したいと考えています。 Vue フロントエンドと Spring Boot バックエンドは、異なるシステムによって提供されます。 CORS トピックを軽減するために nginx リバース プロキシを使用する予定ですが、この問題は nginx が関係しているかどうかに関係なく発生します。

私の vue アプリケーションが最初に行うことは、csrf トークンをリクエストし、ユーザー セッション中に使用できるようにグローバルに保存することです。

ユーザーがログインすると、いくつかの pinia ストアが初期化されます。しかし、残念ながら、これらのリクエスト中に、各リクエストで送信された JSESSIONID Cookie がバックエンドによって無視され、新しい JSESSIONID が発行されます。 JSESSIONID は、アプリケーションの使用中およびさらなる GET リクエストの実行中に変化し続けます

これにより、初期 JSESSIONID の「グローバル」に保存された CSRF トークンが無効になります...

「csrf」リクエストヘッダー:

「ログイン」タイトル:

その後、リクエストで JSESSIONID Cookie を送信したにもかかわらず (サーバーによって送信された - なぜですか?

)、5 番目のリクエストで突然新しい JSESSIONID が取得されました。

質問

セッションが変化し続けるのはなぜですか? JSESSIONID は常に同じにすべきではないでしょうか?

CSRF を実施する目的は何ですか? (GET 以外の) リクエストを行う前に、新しいトークンをリクエストしますか? (私の場合は「認証情報: "同じオリジン"」を使用しています)

P粉163951336
P粉163951336

全員に返信 (1)
P粉070918777

SecurityConfig に.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)があり、問題が発生しています... 私の知る限り、これを削除すると CSRF の使用問題が解決します。 p>

いいねを押す+0
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート
    私たちについて 免責事項 Sitemap
    PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!