Vue/SpringBoot: Warum ändert sich meine JSESSIONID ständig?
P粉163951336
P粉163951336 2023-08-29 19:12:16
0
1
689
<p>Ich habe eine Vue-Anwendung mit Spring Boot 3.0.1-Backend und möchte CSRF verwenden. Das Vue-Frontend und das Spring Boot-Backend werden von unterschiedlichen Systemen bedient. Ich habe vor, einen Nginx-Reverse-Proxy zu verwenden, um das CORS-Thema zu entschärfen, aber dieses Problem tritt unabhängig davon auf, ob Nginx beteiligt ist oder nicht. </p> <p>Das erste, was meine Vue-Anwendung tut, ist, das CSRF-Token anzufordern und es global zu speichern, damit es während der Benutzersitzung verwendet werden kann. </p> <p>Wenn sich ein Benutzer anmeldet, werden mehrere Pinia-Stores initialisiert. Aber leider wird bei diesen Anfragen das mit jeder Anfrage gesendete JSESSIONID-Cookie vom Backend ignoriert und eine neue JSESSIONID ausgegeben. Die JSESSIONID ändert sich ständig, während die Anwendung verwendet wird und weitere GET-Anfragen gestellt werden</p> <p>Dadurch wird das „globale“ gespeicherte CSRF-Token der anfänglichen JSESSIONID natürlich ungültig...</p> <p>Anforderungsheader „csrf“: </p> <p>Titel „Anmelden“: </p> <p>Dann bekam die 5. Anfrage plötzlich eine neue JSESSIONID, obwohl ich das JSESSIONID-Cookie in der Anfrage gesendet hatte (vom Server gesendet – warum?</p> <h2>Frage</h2> <p>Warum ändern sich meine Sitzungen ständig? Sollte meine JSESSIONID nicht immer gleich bleiben? </p> <p>Was ist der Zweck der Durchführung von CSRF? Neues Token anfordern, bevor eine (nicht GET?) Anfrage gestellt wird? (Meiner verwendet „Anmeldeinformationen: „gleicher Ursprung““)</p>
P粉163951336
P粉163951336

Antworte allen(1)
P粉070918777

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

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage