Maison  >  Article  >  Java  >  Comment le framework Java empêche les attaques CSRF

Comment le framework Java empêche les attaques CSRF

WBOY
WBOYoriginal
2024-06-01 13:29:56846parcourir

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.

Comment le framework Java empêche les attaques CSRF

Comment le framework Java empêche les attaques CSRF

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

  • Spring MVC : Utilisez l'annotation @CsrfToken dans les méthodes du contrôleur Générer un jeton CSRF sur . @CsrfToken 注释在控制器方法上生成 CSRF 令牌。
  • JSF:使用 <inputsecret></inputsecret> 标签生成 CSRF 令牌。

Same-Origin 策略

  • 确保浏览器只向其原始来源(即从该页面加载的 HTML 文档所在的服务器)发送请求。
  • Spring Security 提供了 CsrfConfigurer 配置,可指定需要 CSRF 保护的 URL。
  • JSF 使用 csrfTokenValidator 来验证 CSRF 令牌并阻止跨域请求。

自定义令牌存储

  • 可以将 CSRF 令牌存储在 cookie、header 或会话中。
  • Spring MVC 和 JSF 都允许通过配置 CsrfFilterCsrfTokenRepository
JSF :

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 configurant CsrfFilter 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn