• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

csrf 토큰

20.12.20 19:45 작성 조회수 204

0

안녕하세요 기선님 좋은 강의 감사드립니다!! :) 

흐름을 살펴보니 csrf필터를 거치는 요청의 경우 csrf 토큰이 없는 경우 csrf 토큰을 생성해서 요청을 반환하고, 폼요청을 보낼 때, 반환받은 csrf토큰을 같이 보내는 것 같은데, 그럼 서버쪽에서는 생성해준 csrf 토큰의 값을 어디서 보관하고 있는건가요? csrf 토큰을 포함한 요청이 왔을때 비교를 하기 위해선 반환한 토큰값을 서버측에서도 어디선가 유지하고 있어야 할텐데 그 부분이 어디일지 또 언제까지 유지하는지 궁금해서 질문남깁니다!!

======================= 

질문을 남기고 구글링을 통해 찾아본 결과는 CsrfTokenRepository를 사용해서 토큰정보를 가지고 있는 것같은데 기본구현체는 HttpSessionCsrfTokenRepository를 사용하는 것으로 보아 Session을 기반으로해서 토큰 정보를 유지하고, session이 사라지면 자연스럽게 토큰 정보도 날라가는것 처럼 보이는데 맞을까요? 

답변 1

답변을 작성해보세요.

1

네 맞습니다. 그 CsrfTokenRepository를 다른 걸로 교체할 수도 있는데 그럼 원하는 위치에 저장해 둘 수 있겠죠. 가령 DB나 Redis 같은 저장소도 사용할 수 있지만 기본은 session입니다.