경주장
[인증 API] 세션 고정보호, 세션 생성 정책 본문
세션 고정보호
공격자가 자신의 SessionID를 사용자의 Cookie에 심어 공격자의 세션 쿠키로 사용자가 로그인을 하면 서버에서는 공격자의 SessionID로 인증한 것과 마찬가지로 처리된다. 공격자는 사용자의 리소스를 접근할 수 있게 된다! 이 공격은 세션 고정 공격이라고 불린다.
이때 매 인증시 Session을 생성하거나 SessionID만 변경하는 것으로 해당 공격을 방어 할 수 있다.
http
.sessionManagement()
.sessionFixation() : 세션 고정 정책 설정
http.sessionManagement()
.sessionFixation()
.changeSessionId(); // 기본 값 - 인증 시 세션 아이디만 변경
//.migrateSession(); // 서블릿 3.1 이하의 기본 값
//.newSession(); // 인증시 새로운 세션 생성
//.none(); // 아무런 정책을 적용하지 않음 (세션 고정 공격에 취약)
세션 생성 정책
http
.sessionManagement().sessionCreationPolicy() : 세션 고정 정책 설정
http.sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.ALWAYS); //항상 생성
// .sessionCreationPolicy(SessionCreationPolicy.IF_REQUIRED);//필요시 생성(Default)
// .sessionCreationPolicy(SessionCreationPolicy.NEVER); //생성하지 않음, 이미 존재하면 사용
// .sessionCreationPolicy(SessionCreationPolicy.STATELESS); //생성하지 않음, 이미 존재해도 사용하지 않음
jwt만을 활용한 인증 정책을 활용하는 경우 StateLess 설정을 적용한다.
참고
'스프링 > 스프링 시큐리티' 카테고리의 다른 글
[인가 API] 권한 설정 (0) | 2022.02.06 |
---|---|
[인증 API] SessionManagementFilter, ConcurrentSessionFilter (0) | 2022.02.06 |
[인증 API] 동시 세션제어 (0) | 2022.02.06 |
[인증 API]익명사용자 인증 필터 : AnoymousAuthenticationFilter (0) | 2022.02.06 |
[인증 API] Remember Me 인증 (0) | 2022.02.02 |