쿠키(Cookie)와 세션(Session)은 웹 브라우저와 웹 서버 간의 상태를 유지하고 관리하기 위한 기술입니다.
쿠키는 웹 서버가 웹 브라우저에 전송하는 작은 데이터 조각입니다. 주요 특징은 다음과 같습니다:
세션은 클라이언트의 상태 정보를 서버에 저장하고 관리하는 기술입니다13. 주요 특징은 다음과 같습니다:
클라이언트의 상태 데이터를 서버에 저장합니다.
쿠키와 세션의 차이점
저장 위치
쿠키: 클라이언트(웹 브라우저)에 저장
세션: 서버에 저장
보안
쿠키: 클라이언트에 저장되어 보안에 취약할 수 있음
세션: 서버에 저장되어 상대적으로 안전함
라이프사이클
쿠키: 설정된 만료 시간에 따라 삭제됨
세션: 브라우저 종료 시 삭제됨
세션-쿠키 인증은 HTTP 기본 인증의 한계를 해결하며, 사용자의 로그인 상태를 유지하기 위해 세션 ID를 생성하고 쿠키에 저장하는 방식입니다.
초기 요청
클라이언트가 보호된 리소스에 접근 시도 → 서버가 로그인 요청.
인증 과정
클라이언트가 사용자명·비밀번호 제출 → 서버가 검증 후 세션 ID 생성.
세션 저장
서버는 세션 정보를 저장(메모리, DB 등)하고, Set-Cookie 헤더로 세션 ID를 클라이언트에 전달.
인증 유지
이후 요청에서 클라이언트가 세션 쿠키를 포함해 전송 → 서버가 세션 ID를 확인 후 액세스 허용.
세션 종료
로그아웃 또는 만료 시 서버는 세션을 무효화하고 클라이언트는 쿠키 삭제.
📌 핵심 개념: 세션 ID 기반 인증, 쿠키 저장·전송, 서버와 클라이언트 간 세션 검증.
세션 하이재킹
공격자가 세션 쿠키를 탈취하여 사용자를 가장할 수 있음.
CSRF 공격
악의적인 요청을 통해 사용자가 모르는 사이에 행동을 실행할 수 있음. (대응책: 안티-CSRF 토큰, 재인증 요구)
📌 대책: 보안 강화를 위해 HTTPS 사용, 보안 토큰 적용, 세션 저장 방식 최적화 필요.