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>
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; } }
Versteckte CSRF-Felder in der Formularanforderung hinzufügen
<input name="${(_csrf.parameterName)!}" value="${(_csrf.token)!}" type="hidden" />
Header in AJAX-Anfrage hinzufügen
xhr.setRequestHeader("${_csrf.headerName}", "${_csrf.token}");
jQuerys globale Ajax-Konfiguration
jQuery.ajaxSetup({ "beforeSend": function (request) { request.setRequestHeader("${_csrf.headerName}", "${_csrf.token}"); } });
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!