Spring

Session 타임 아웃 설정

Mecodata 2024. 4. 15. 16:03

필요성

- 사용자가 웹 사이트를 떠나거나 일정 시간 동안 아무런 활동을 하지 않을 때 세션을 자동으로 종료시켜 보안을 강화하고 서버 리소스를 효율적으로 관리할 수 있음 → 일정 시간이 지나면 자동 로그아웃

- 세션은 서버의 메모리에 저장되는데 별도의 타임 아웃 설정 없이 무한정 보관하게 되면 메모리 초과로 인하여 서버에 과부하가 올 수 있음

- 유저의 세션을 해커가 탈취했을 때 서버쪽에서 해당 유저의 세션이 살아있다면 악의적인 접근 및 공격이 가능함

 

적용 방법

- HTTP Session은 기본 생명 주기가 30분

- application.properties에서 다음 설정을 입력 

※ 두 속성 모두 기본 단위는 초(s)이며 m(분), h(시) 입력 가능

server.servlet.session.timeout=5s
server.servlet.session.cookie.max-age=5s

- server.servlet.session.timeout = 서버세션을 유지하는 시간 지정

- server.servlet.session.cookie.max-age = 클라이언트가 해당 세션 쿠키를 유지하는 시간 지정 

두 속성의 값이 서로 같도록 입력해야 함 세션의 서버 측 타임아웃과 클라이언트 측 쿠키의 최대 수명을 동일하게 유지하여 일관성 있게 세션을 관리하기 위함