스프링 security csrf

안석우(문과대학 철학)·2024년 11월 12일
0

csrf란?

Cross-Site Request Forgery의 약자로, 사용자가 원하지 않아도 서버로 요청을 보내는 것을 의미한다. ex)사용자 모르게 게시글 삭제, 사용자 모르게 사용자 정보변경

개발환경에서 http.csrf((auth) -> auth.disable());

개발환경에서는 편하게 개발하기 위해 Spring Security configuration파일에 적어서 CSRF설정을 disable한다. 이러면 Spring security에서 CSRF 설정을 끈다. -> csrf 공격에 노출된다.

배포 시 csrf 설정

http.csrf((auth) -> auth.disable());을 주석처리해주면 기본적으로 Spring Security는 csrf설정을 enable하기 때문에 csrf설정이 enabled 된다.

이러면 Spring Security는 Csrffilter를 통해 모든 Post,Put,Delete요청에 대해 csrf토큰 검증을 진행한다.

--> 이제 그럼 post,put,delete 요청을 보낼 때 CSRF토큰을 보내도록 해줘야한다, 서버가 stateless하게 인증을 진행(ex, JWT)하는 경우 서버에 세션이 없기 때문에 CSRF가 필요가 없다더라

0개의 댓글