반응형
동시 세션 제어
- 이전 사용자 세션 만료
- 현재 사용자 인증 실패
@Override
protected void configure(HttpSecurity http) throws Exception {
// 세션 관리 기능 작동
http.sessionManagement()
.maximumSessions(1) // 최대 허용 가능 세션 수, -1 : 무제한 로그인 세션 허용
.maxSessionsPreventsLogin(true) // 동시 로그인 차단, false : 기존 세션 만료(defualt)
.invalidSessionUrl("/invalid") // 세션이 유효하지 않을 때 이동할 URL
.expiredUrl("/expired") // 세션이 만료된 경우 이동할 URL
}
세션 고정 보호
@Override
protected void configure(HttpSecurity http) throws Exception {
http.sessionManagement() // 세션 관리 기능 작동
.sessionFixation().changeSessionId() // 기본 값
}
공격자가 사용자의 쿠키값을 변경해도 사용자 인증 성공 시 JSESSIONID값을 변경하기 때문에 공격자가 인증된 JSESSIONID값으로 요청해도 인증되지 않는다.
- changeSessionId() : 서블릿 3.1이상에서 사용하는 기본 값.
- migrationSession : 서블릿 3.1 이하에서 사용하는 기본 값.
- newSession() : 세션ID, JSession모두 새로 생성함.
- none : 아무것도 설정하지 않음.
세션 정책
@Override
protected void configure(HttpSecurity http) throws Exception {
http.sessionManagement() // 세션 관리 기능 작동
.sessionCreationPolicy(SessionCreationPolicy.If_Required)
}
- SessionCreationPolicy.Always : 스프링 시큐리티가 항상 세션 생성.
- SessionCreationPolicy.If_Required : 스프링 시큐리티가 필요 시 생성(기본값).
- SessionCreationPolicy.Never : 스프링 시큐리티가 생성하지 않지만 이미 존재하면 사용.
- SessionCreationPolicy.Stateless : 스프링 시큐리티가 생성하지 않고 존재해도 사용하지 않음.
- → EX) JWT
반응형
'Framework > Spring Framework' 카테고리의 다른 글
[Spring Boot] Spring Security Remember Me 인증 (0) | 2021.05.03 |
---|---|
[Spring Boot] Spring Security 로그아웃 처리 (0) | 2021.05.02 |
[Spring Boot] Spring Security 로그인 처리 (0) | 2021.05.02 |
[Spring Boot] Spring Security 사용자 정의 보안 기능 구현 (0) | 2021.05.02 |
[SpringFramework] RESTFul Web Service Example - GET, POST, PUT, DELETE 예제 (2) | 2018.08.06 |
댓글