inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 시큐리티

CSRF 어택 방지 필터: CsrfFilter

csrf 토큰

해결된 질문

291

jaden

작성한 질문수 44

0

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

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

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

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

java spring

답변 1

1

백기선

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

커스텀 로그인 페이지를 등록할 경우 LogoutFilter의 등록 여부 질문

0

383

1

anonymousClass를 사용하는 이유

0

387

1

ExcpetionTranslationFilter가 FilterSecurityInterceptor에서 발생하는 예외만 처리하는 이유

0

242

1

Principal 인터페이스와 User 클래스의 관계

0

756

1

passwordEncoder 질문드립니다.

0

320

1

WebSecurityConfigurerAdapter is deprecated 가 불편하신 분들을 위해

6

864

1

왜 스프링은 userid가 아니고 username을 사용했을까요?

0

1022

1

무상태성

0

346

2

로그인 후 로그인 페이지 접속

0

282

1

AuthenticationException은 어떤 경우에 발생하는지

0

556

1

AccountService에 비밀번호

1

224

1

커스텀 어노테이션 의 `커스텀 value` 설정방법에 관한 질문입니다.

0

356

1

passwordEncoder 빈 생성 시 차이

0

252

1

Bean 등록 관련 질문입니다.

0

247

1

시큐리티 전략관련

0

354

3

브라우저 기반 요청이 클라이언트의 요청을 처리 -> 의 의미?

0

228

1

AccountControllerTest 실행오류

0

1066

1

알려주신대로 설정을 해도 다시 302요청을 보냅니다....

0

342

1

voter에 대해 질문이 있습니다.

0

225

1

제가 맞게 이해한것인지 궁금합니다.

1

233

1

Spring security test 수행시 @AuthenticationPrincipal 가 null 로 세팅됨

0

548

1

Spring security Multi 인증 문의드려요

0

287

1

ProviderManager 문의

0

267

1

UserDetailsService 가 DaoAuthenticationProvider 에 어떻게 주입 되는지 알 수 있을 까요?

0

326

1