Le framework Java protège contre les attaques CSRF grâce aux mécanismes suivants : Validation du jeton : génère et valide un jeton CSRF pour garantir que la demande provient de la source attendue. Politique de même origine : le navigateur envoie uniquement des requêtes à son origine d'origine pour empêcher les attaques intersites. Stockage de jetons personnalisé : permet de stocker des jetons CSRF dans des cookies, des en-têtes ou des sessions.
Qu'est-ce qu'une attaque CSRF ?
Une attaque CSRF (cross-site request forgery) est un type de cyberattaque dans lequel un attaquant incite une victime à effectuer des actions sur un site Web à son insu. L'attaquant a utilisé le cookie de session de la victime pour usurper son identité.
Comment le framework Java empêche-t-il les attaques CSRF ?
Les frameworks Java tels que Spring MVC et JSF fournissent plusieurs mécanismes pour empêcher les attaques CSRF :
Validation du jeton
@CsrfToken
dans les méthodes du contrôleur Générer un jeton CSRF sur . @CsrfToken
注释在控制器方法上生成 CSRF 令牌。<inputsecret></inputsecret>
标签生成 CSRF 令牌。Same-Origin 策略
CsrfConfigurer
配置,可指定需要 CSRF 保护的 URL。csrfTokenValidator
来验证 CSRF 令牌并阻止跨域请求。自定义令牌存储
CsrfFilter
和 CsrfTokenRepository
Utilisez la balise <inputsecret></inputsecret>
pour générer un jeton CSRF.
Politique de même origine
garantit que le navigateur envoie uniquement les requêtes à son origine d'origine (c'est-à-dire le serveur sur lequel réside le document HTML chargé à partir de la page). Spring Security fournit une configuration CsrfConfigurer
pour spécifier les URL qui nécessitent une protection CSRF.
JSF utilise csrfTokenValidator
pour valider les jetons CSRF et bloquer les requêtes d'origine croisée.
Stockage de jetons personnalisé
🎜Les jetons CSRF peuvent être stockés dans des cookies, des en-têtes ou des sessions. 🎜🎜Spring MVC et JSF permettent de personnaliser le stockage des jetons en configurantCsrfFilter
et CsrfTokenRepository
. 🎜🎜🎜🎜Cas pratique : Spring MVC🎜🎜🎜🎜1. Installer les dépendances : 🎜🎜<dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-web</artifactId> <version>5.5.7</version> </dependency>🎜🎜2. Configurer Spring Security : 🎜🎜
public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http .csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse()) .and() // 其他安全配置 ; } }🎜🎜3. 🎜 🎜4.Ajouter jeton vers la page HTML : 🎜🎜
@RequestMapping("/transferMoney") @PostMapping public String transferMoney(@RequestParam int amount, @CsrfToken String csrfToken) { // 验证令牌 csrfTokenManager.verifyToken(csrfToken); // 执行转账操作 }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!