Was ist der Grund, csrf in der Spring Boot-Webanwendung zu deaktivieren?
Lesezeit: 2 Minuten
arminvanbuuren
Es gibt viele Tutorials, in denen gezeigt wird, wie man csrf deaktiviert,
csrf().disable()
(und andere Möglichkeiten wie .properties, .ymletc.), aber nirgendwo erklärt, warum sie das tun?
Also meine Fragen sind:
Was ist der wirkliche Grund, es zu deaktivieren?
Verbessert es die Leistung?
jemand kann einen anderen Token-Mechanismus verwenden, der nicht csrf ist, um Anforderungen zu authentifizieren, wie z. B. jwt, sodass kein csrf-Token verwendet wird
– Benjamin C
17. September 2018 um 8:23 Uhr
In einem Tutorial könnte das nur dazu dienen, das Tutorial einfacher zu machen.
– Raedwald
17. September 2018 um 8:29 Uhr
@benjaminc ok, ich verstehe, aber warum vergisst du nicht einfach csrf().disable()? stören sich jwt und standart csrf irgendwie gegenseitig?
– arminvanbuuren
17. September 2018 um 8:29 Uhr
@Raedwald, ich denke, vergiss einfach csrf().disable() ist einfacher )))
Unsere Empfehlung ist, den CSRF-Schutz für alle Anfragen zu verwenden, die von einem normalen Benutzer durch einen Browser verarbeitet werden könnten. Wenn Sie nur einen Dienst erstellen, der von Nicht-Browser-Clients verwendet wird, möchten Sie wahrscheinlich den CSRF-Schutz deaktivieren.
Verbessert es die Leistung?
Es sollte die Leistung nicht beeinträchtigen. Ein Filter (oder eine andere Komponente) wird aus der Anforderungsverarbeitungskette entfernt, um die Funktion nicht verfügbar zu machen.
Was ist der Grund für die Deaktivierung csrf in einer Spring Boot-Anwendung?
Sie verwenden einen anderen Token-Mechanismus.
Sie möchten die Interaktionen zwischen einem Client und dem Server vereinfachen.
Benutzer7294900
Frühling empfehlen, es beim Servieren zu verwenden Browser-Clientswenn nicht, kann es deaktiviert werden:
Unsere Empfehlung ist, den CSRF-Schutz für alle Anfragen zu verwenden, die von einem normalen Benutzer durch einen Browser verarbeitet werden könnten. Wenn Sie nur einen Dienst erstellen, der von Nicht-Browser-Clients verwendet wird, möchten Sie wahrscheinlich den CSRF-Schutz deaktivieren.
Ich werde das hinzufügen, auch wenn Sie Browser-Clients bedienen, aber es wird intern verwendet, nur Sie möchten/können es entfernen.
Die Essenz meiner Frage lautet also: ** warum ** möchte ich dies möglicherweise tun? Was ist der Grund, warum ich so eifrig bin, es zu deaktivieren? Warum kann ich es nicht einfach vergessen?
– arminvanbuuren
17. September 2018 um 8:42 Uhr
Sie möchten den CSRF-Schutz für interne Websites nicht deaktivieren. Dadurch können Angreifer Firewalls umgehen, da CSRF in Ihrem Browser stattfindet, der sich hinter allen Firewalls befindet. Ich würde empfehlen, durchzulesen docs.spring.io/spring-security/site/docs/5.3.x/reference/html5/…
– Rob Winde
25. März 2020 um 13:59 Uhr
vsingh
Ja, es ist sicher zu deaktivieren, wenn Sie einen anderen Authentifizierungsmechanismus haben, der nicht getarnt werden kann. Für interne Unternehmensanwendungen kein großes Problem. Wir mussten es deaktivieren, weil es unseren bestehenden Authentifizierungsmechanismus störte.
14498400cookie-checkWas ist der Grund, csrf in der Spring Boot-Webanwendung zu deaktivieren?yes
jemand kann einen anderen Token-Mechanismus verwenden, der nicht csrf ist, um Anforderungen zu authentifizieren, wie z. B. jwt, sodass kein csrf-Token verwendet wird
– Benjamin C
17. September 2018 um 8:23 Uhr
In einem Tutorial könnte das nur dazu dienen, das Tutorial einfacher zu machen.
– Raedwald
17. September 2018 um 8:29 Uhr
@benjaminc ok, ich verstehe, aber warum vergisst du nicht einfach csrf().disable()? stören sich jwt und standart csrf irgendwie gegenseitig?
– arminvanbuuren
17. September 2018 um 8:29 Uhr
@Raedwald, ich denke, vergiss einfach csrf().disable() ist einfacher )))
– arminvanbuuren
17. September 2018 um 8:30 Uhr
@arminvanbuuren würde Anfragen ausführlicher machen
– Andreas Tobilko
17. September 2018 um 8:33 Uhr