WebSecurityConfig désactiver la sécurité CSRF
WebSecurityConfig.java
package com.example.rest; // Définition du package
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.web.SecurityFilterChain;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration // Cette classe est une classe de configuration Spring
@EnableWebSecurity // Cette annotation active la sécurité web de Spring
public class WebSecurityConfig {
@Bean // Cette méthode crée un bean de type SecurityFilterChain
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http.csrf(csrf -> csrf.disable()); // Désactivation de la protection CSRF
// Autres configurations de sécurité...
return http.build(); // Construction et retour du SecurityFilterChain
}
}
La sécurité CSRF, ou Cross-Site Request Forgery, est une mesure de sécurité destinée à prévenir les attaques où un utilisateur malveillant force un utilisateur légitime à effectuer des actions non intentionnelles sur un site web où il est authentifié.
Comment ça marche ?
- Attaquant : Un attaquant crée un lien ou une page malveillante qui contient une requête vers un site cible.
- Victime : La victime, qui est déjà authentifiée sur le site cible, clique sur le lien ou visite la page malveillante.
- Requête Malveillante : La requête malveillante est envoyée au site cible avec les cookies de session de la victime, ce qui peut entraîner des actions non désirées, comme la modification de paramètres ou la création de transactions.
Mesures de Protection contre CSRF :
Pour se protéger contre les attaques CSRF, les applications web utilisent souvent des tokens CSRF. Voici comment cela fonctionne :
- Génération de Token : Lorsqu'un utilisateur se connecte, le serveur génère un token CSRF unique et le stocke dans la session de l'utilisateur.
- Envoi de Token : Le token est inclus dans chaque formulaire de l'application web.
- Vérification de Token : Lorsqu'un utilisateur soumet un formulaire, le serveur vérifie si le token CSRF soumis correspond au token stocké dans la session de l'utilisateur.
- Rejet de Requête : Si les tokens ne correspondent pas, la requête est rejetée, empêchant ainsi toute action non intentionnelle.
Exemple en Spring Security :
Dans le cadre de Spring Security, la protection CSRF est activée par défaut. Voici un exemple de configuration qui active la protection CSRF :
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf()
.enable(); // Active la protection CSRF
}
}
Conclusion :
La sécurité CSRF est cruciale pour protéger les utilisateurs contre les attaques où des actions non désirées sont effectuées à leur insu sur des sites web où ils sont authentifiés. L'utilisation de tokens CSRF est une méthode courante pour mitiger ce type d'attaque.