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 = 클라이언트가 해당 세션 쿠키를 유지하는 시간 지정
※ 두 속성의 값이 서로 같도록 입력해야 함 → 세션의 서버 측 타임아웃과 클라이언트 측 쿠키의 최대 수명을 동일하게 유지하여 일관성 있게 세션을 관리하기 위함