[Spring Security] csrf 설정

OOSEDUS·2024년 9월 23일

스프링 시큐리티

목록 보기
3/4
post-thumbnail

csrf란?

CSRF(Cross-Site Request Forgery)는 요청을 위조하여 사용자가 원하지 않아도 서버측으로 특정 요청을 강제로 보내는 방식이다. (회원 정보 변경, 게시글 CRUD를 사용자 모르게 요청)

  • 웹 취약점 중 하나

csrf가 이뤄지기 위한 조건 3가지

  1. 사용자는 보안이 취약한 서버로부터 이미 로그인되어 있는 상태여야 합니다.
  2. 쿠키 기반의 서버 세션 정보를 획득할 수 있어야 합니다.
  3. 공격자는 서버를 공격하기 위한 요청 방법에 대해 미리 파악하고 있어야 합니다. 예상하지 못한 요청 매개변수가 없어야 합니다.

출처: https://devscb.tistory.com/123 [SCB개발자이야기:티스토리]


방지하는 방법 : csrf 토큰

  • 사용자 세션에 임의에 값을 저장하여 모든 요청마다 해당 값을 포함하여 전송한다. 서버에서 요청을 받을때마다, 세션에 저장된 값과 요청으로 전송된 값이 일치하여 검증하여 방어한다.

jwt(api 서버)의 경우에는 csrf.disable() 사용하면됨. 세션을 STATELESS로 관리하기 때문

profile
성장 가능성 만땅 개발블로그

0개의 댓글