개요
- 세션 = 서버 + 클라이언트 연결 (세 ->서 버 서 클 -> 클 라이언트)
- 세션 통제 = 세션 연결로 인해 발생하는 정보 관리
세션ID
- 서버가 클라이언트들을 구분하기 위해 부여하는 키.
- 클라이언트가 서버에 요청을 보낼 때 세션 ID 인증함
세션 하이재킹
- 서버에 접속하고 있는 클라이언트의 세션 정보를 가로채는 공격 기법
레이스컨디션
- 두 개 이상의 프로세스가 공용 자원을 획득하기 위해 경쟁하는 상태. (레이스->레이프로세스 컨디션너-자원 확보)
불충분한 세션 관리
- 세션ID 타임아웃이 너무 길게 설정되어 발생할 수 있는 보안 취약점
- 다중 스레드 환경에서 싱글톤 패턴에서 레이스 컨디션으로 인해 동기화 오류가 발생하거나 맴버 변수 정보가 노출될 수 있다. 이를 방지하기 위해서 맴버 변수보다 지역 변수를 사용해서 변수의 범위를 제안해야 한다.
세션 설계시 고려해야할 사항
- 모든 페이지에서 로그아웃 가능한 UI
- 세션 타임아웃 중요도가 높으면 2-5분 낮으면 15-30분으로 설정
- 이전 세션이 종료되지 않으면 새 세션이 생성되지 못하게 한다.
- 중복 접근에 대한 세션 관리 정책 수립