Qu'est-ce que CSRF?
CSRF (contrefaçon de demande inter-sites), nom chinois: contrefaçon de demande croisée, également connue sous le nom de: un clic attaque / session, abréviation: CSRF / xsrf.
Que peut faire CSRF?
Vous pouvez comprendre les attaques CSRF comme ceci: l'attaquant a volé votre identité et a envoyé une demande malveillante en votre nom. Les choses que le CSRF peut faire comprend: envoyer des e-mails, envoyer des messages, voler votre compte et même acheter des marchandises, transférer de l'argent à partir de la monnaie virtuelle ... Les problèmes causés comprennent: la fuite de confidentialité personnelle et la sécurité de la propriété.
Statut actuel de la vulnérabilité CSRF
La méthode d'attaque du CSRF a été proposée par le personnel de sécurité étrangère en 2000, mais ce n'est qu'en 2006 à laquelle il a commencé à faire attention en Chine. En 2008, les vulnérabilités du CSRF ont été exposées dans de nombreuses grandes communautés et sites Web interactifs au pays et à l'étranger, tels que: NYTimes.com (New York Times), Metafilter (un grand site Web de blog), YouTube et Baidu Hi ... Maintenant, de nombreux sites sur Internet sont toujours peu préparés pour cela, donc l'industrie de la sécurité appelle CSRF un "géant du géant".
Dans un projet de démarrage de printemps, les attaques du CSRF doivent être empêchées et seuls les filtres pertinents dans la sécurité du printemps peuvent être introduits.
Ajouter des dépendances pertinentes dans POM
<Dependances> <Dependency> <GroupId> org.springFramework.boot </proncId> <Artifactid> printemps-boot-starter-freemarker </ artifactid> </dependency> <! - Security (utilisé pour la protection CSRF uniquement) -> <dependency> <proupId> org.springwork.security </rompuptions> <ArtefactId> printemps-security-web </ artifactid> </dependency> </dependency> </dpendances>
Ajouter csrffilter lorsque l'application démarre
@SpringBootApplicationPublic Class Application étend webmvcConfigurerAdapter {@Bean Public FilterRegistrationBean Csrffilter () {FilterRegistrationBean Enregistrement = new FilterRegistrationBean (); Enregistrement.SetFilter (nouveau CSRFFILTER (nouveau httpSessioncSrfTokenRoKepository ())); Enregistrement.AddurlPatterns ("/ *"); Enregistrement de retour; } public static void main (String [] args) {springApplication.run (application.class, args); }}Ajouter un champ caché de CSRF sous forme
<input name = "$ {(_ csrf.parametername)!}" value = "$ {(_ csrf.token)!}" type = "Hidden">Ajout de l'en-tête de CSRF dans Ajax
xhr.setRequestHeader ("$ {_ csrf.headername}", "$ {_ csrf.token}");L'adresse github est https://github.com/kabike/spring-boot-csrf
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.