Maison > Java > javaDidacticiel > le corps du texte

Introduction à la méthode SpringSecurity de gestion des attaques CSRF

不言
Libérer: 2019-03-06 15:37:51
avant
3222 Les gens l'ont consulté

Ce que cet article vous apporte est un exemple d'explication du FBV et du CBV de Django. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

État actuel des vulnérabilités CSRF

falsification de requêtes intersites CSRF (Cross-site request forgery), également connue sous le nom d'attaque en un clic ou de session riding, généralement abrégée en CSRF ou XSRF est une utilisation malveillante d'un site Web. Bien que cela ressemble à du cross-site scripting (XSS), il est très différent du XSS, qui exploite des utilisateurs de confiance au sein d'un site, et du CSRF, qui exploite des sites Web de confiance en se faisant passer pour des requêtes d'utilisateurs de confiance. Par rapport aux attaques XSS, les attaques CSRF ont tendance à être moins populaires (les ressources pour les empêcher sont donc également assez rares) et difficiles à prévenir, elles sont donc considérées comme plus dangereuses que XSS.
CSRF est une attaque adjointe obscurcie qui s'appuie sur les navigateurs Web.

Dépendance POM

<!-- 模板引擎 freemarker -->
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<!-- Security (只使用CSRF部分) -->
<dependency>
  <groupId>org.springframework.security</groupId>
  <artifactId>spring-security-web</artifactId>
</dependency>
Copier après la connexion

Configurer le filtre

@SpringBootApplication
public class Application {

  public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
  }
  
  /**
   * 配置CSRF过滤器
   *
   * @return {@link org.springframework.boot.web.servlet.FilterRegistrationBean}
   */
  @Bean
  public FilterRegistrationBean<CsrfFilter> csrfFilter() {
    FilterRegistrationBean<CsrfFilter> registration = new FilterRegistrationBean<>();
    registration.setFilter(new CsrfFilter(new HttpSessionCsrfTokenRepository()));
    registration.addUrlPatterns("/*");
    registration.setName("csrfFilter");
    return registration;
  }
}
Copier après la connexion

Ajouter CSRF dans la demande de formulaire Champs masqués

<input name="${(_csrf.parameterName)!}" value="${(_csrf.token)!}" type="hidden" />
Copier après la connexion

Ajouter des en-têtes dans les requêtes AJAX

xhr.setRequestHeader("${_csrf.headerName}", "${_csrf.token}");
Copier après la connexion

Configuration globale Ajax de jQuery

jQuery.ajaxSetup({
  "beforeSend": function (request) {
    request.setRequestHeader("${_csrf.headerName}", "${_csrf.token}");
  }
});
Copier après la connexion

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!

Étiquettes associées:
source:segmentfault.com
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!