web-dev-qa-db-fra.com

Quelle est la raison de désactiver csrf dans l'application Web Spring Boot?

Il existe de nombreux tutoriels où est montré comment désactiver csrf,

csrf().disable()

(et d'autres possibilités comme .properties, .yml, etc.) mais nulle part expliqué pourquoi ils font cela?

Mes questions sont donc:

Quelle est la raison réelle de le désactiver?
Cela améliore-t-il les performances?

12
arminvanbuuren

Quelle est la raison réelle de le désactiver?

La documentation de Spring suggère:

Notre recommandation est d'utiliser la protection CSRF pour toute demande qui pourrait être traitée par un navigateur par des utilisateurs normaux. Si vous créez uniquement un service utilisé par des clients autres que des navigateurs, vous souhaiterez probablement désactiver la protection CSRF.


Améliore-t-il les performances?

Cela ne devrait pas avoir d'incidence sur les performances. Un filtre (ou un autre composant) sera supprimé de la chaîne de traitement des demandes pour rendre la fonctionnalité indisponible.

Quelle est la raison de désactiver csrf dans une application Spring Boot?

  1. Vous utilisez un autre mécanisme de jeton.
  2. Vous souhaitez simplifier les interactions entre un client et le serveur.
8
Andrew Tobilko

Spring recommande de l'utiliser lors du service des clients du navigateur , sinon il peut être désactivé:

Notre recommandation est d'utiliser la protection CSRF pour toute demande qui pourrait être traitée par un navigateur par des utilisateurs normaux. Si vous créez uniquement un service utilisé par des clients autres que des navigateurs, vous souhaiterez probablement désactiver la protection CSRF.

J'ajouterai que même si vous naviguez sur des clients clients, mais qu'il est utilisé en interne uniquement, vous pouvez/pouvez le supprimer.

2
user7294900