Protecția împotriva atacurilor CSRF (Cross-Site Request Forgery) este activată în mod implicit în Spring Security pentru a împiedica site-urile terțe să trimită comenzi neautorizate folosind cookie-urile de sesiune ale utilizatorului.
Regula de aur în configurare:
- Pentru aplicații clasice cu randare server-side (Thymeleaf, JSP) sau aplicații SPA care stochează sesiunea în cookie-uri: protecția CSRF trebuie păstrată activă folosind un repository de tokenuri precum
CookieCsrfTokenRepository. - Pentru API-uri pur RESTful și stateless (care folosesc autentificare prin antet
Authorization: Bearer <JWT>): atacul CSRF nu este aplicabil, iar protecția poate fi dezactivată princsrf.disable().
Exemplu: Configurare CSRF cu token trimis în cookie pentru aplicații SPA
package ro.dexblog.demo.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.web.SecurityFilterChain;
import org.springframework.security.web.csrf.CookieCsrfTokenRepository;
@Configuration
public class CsrfSecurityConfig {
@Bean
public SecurityFilterChain configure(HttpSecurity http) throws Exception {
http
.csrf(csrf -> csrf
.csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
);
return http.build();
}
}
Întrebări & Exemple de Cod:
Protecția CSRF în Spring Security 6Ai o nelămurire despre utilizarea comenzii
Protecția CSRF în Spring Security 6sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.