Heim > Java > javaLernprogramm > Hauptteil

Einführung in die Methode von SpringSecurity zum Umgang mit CSRF-Angriffen

不言
Freigeben: 2019-03-06 15:37:51
nach vorne
3222 Leute haben es durchsucht

Dieser Artikel bietet Ihnen eine beispielhafte Erklärung von Djangos FBV und CBV. Ich hoffe, dass er für Freunde in Not hilfreich ist.

Aktueller Status der CSRF-Schwachstellen

CSRF (Cross-site request forgery) Cross-site request forgery, auch bekannt als One Click Attack oder Session Riding, meist abgekürzt als CSRF oder XSRF ist eine böswillige Nutzung einer Website. Obwohl es wie Cross-Site-Scripting (XSS) klingt, unterscheidet es sich stark von XSS, das vertrauenswürdige Benutzer innerhalb einer Site ausnutzt, und CSRF, das vertrauenswürdige Websites ausnutzt, indem es sich als Anfragen von vertrauenswürdigen Benutzern ausgibt. Im Vergleich zu XSS-Angriffen sind CSRF-Angriffe tendenziell weniger beliebt (daher sind auch die Ressourcen zu ihrer Verhinderung recht knapp) und schwer zu verhindern, sodass sie als gefährlicher als XSS gelten.
CSRF ist ein verschleierter Deputy-Angriff, der auf Webbrowsern basiert.

POM-Abhängigkeit

<!-- 模板引擎 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>
Nach dem Login kopieren

Filter konfigurieren

@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;
  }
}
Nach dem Login kopieren

Versteckte CSRF-Felder in der Formularanforderung hinzufügen

<input name="${(_csrf.parameterName)!}" value="${(_csrf.token)!}" type="hidden" />
Nach dem Login kopieren

Header in AJAX-Anfrage hinzufügen

xhr.setRequestHeader("${_csrf.headerName}", "${_csrf.token}");
Nach dem Login kopieren

jQuerys globale Ajax-Konfiguration

jQuery.ajaxSetup({
  "beforeSend": function (request) {
    request.setRequestHeader("${_csrf.headerName}", "${_csrf.token}");
  }
});
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonEinführung in die Methode von SpringSecurity zum Umgang mit CSRF-Angriffen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!