세션 관리
IT 위키
- Session Management
- 사용자와 시스템 사이, 또는 시스템 간에 활성화된 접속(세션)을 생성·유지·종료하는 보안 기능
HTTP 처럼 상태가 없는 프로토콜에서 '누가 로그인해 있는가'를 이어 가려면 세션이 필요하고, 그 세션 자체가 공격 대상이 된다.
| 기능 | 하는 일 |
|---|---|
| 계정과 패스워드 관리 | 사용자를 식별하고 인증한다 |
| 세션 관리 | 인증된 뒤의 활성 접속을 관리한다 |
| 파일 관리 | 파일 접근 권한을 통제한다 |
| 로그 관리 | 행위를 기록한다 |
| 취약점 관리 | 패치와 설정을 점검한다 |
- 세션 하이재킹 방지 — 예측 불가능한 난수로 세션 ID 생성, 충분한 길이(128비트 이상)
- 전송 보호 — HTTPS 강제, 쿠키에 `Secure` · `HttpOnly` · `SameSite` 속성 부여
- 세션 고정(Session Fixation) 방지 — 로그인 성공 시 세션 ID 를 새로 발급한다
- 타임아웃 — 일정 시간 입력이 없으면 세션을 끊는다. 절대 만료 시간도 둔다
- 정상 종료 — 로그아웃 시 서버 측 세션을 실제로 파기한다. 쿠키만 지우는 것으로는 부족하다
- 동시 접속 통제 — 같은 계정의 중복 로그인을 제한하거나 이전 세션을 끊는다
- 중요한 거래 전 재인증
