세션 관리와 쿠키 기반 보안 이슈를 설명할 수 있나요?
쿠키·세션으로 인증 상태를 유지하는 방식과, 쿠키 보안 속성으로 위협을 막는 방법을 정리합니다.
HTTP는 무상태라서, 로그인 상태를 유지하려면 별도 메커니즘이 필요합니다. 대표적으로 쿠키 + 세션을 씁니다.
세션 기반 인증
- 로그인 성공 시 서버가 세션을 생성하고 세션 ID를 발급합니다.
- 세션 ID를 쿠키에 담아 클라이언트에 저장합니다.
- 이후 요청마다 브라우저가 쿠키를 자동 전송하고, 서버는 세션 ID로 사용자를 식별합니다.
(이와 달리 토큰 기반(JWT)은 서버가 상태를 저장하지 않고 토큰 자체로 검증합니다.)
쿠키 기반 보안 이슈
- XSS로 쿠키 탈취 — 스크립트가
document.cookie를 읽어 세션을 훔칠 수 있습니다. - CSRF — 쿠키가 자동 전송되는 성질을 악용해 위조 요청을 보냅니다.
- 세션 하이재킹/고정 — 세션 ID 탈취·고정으로 가로채기.
쿠키 보안 속성
HttpOnly— 자바스크립트에서 쿠키 접근 차단 → XSS로 인한 탈취 방어.Secure— HTTPS에서만 쿠키 전송.SameSite(Lax/Strict/None) — 교차 사이트 요청 시 쿠키 전송 제한 → CSRF 완화.- 만료(
Expires/Max-Age) 적절히 설정, 로그아웃 시 세션 무효화, 로그인 시 세션 ID 재발급(고정 공격 방어).
Set-Cookie: sid=abc123; HttpOnly; Secure; SameSite=Lax; Max-Age=3600핵심은 HttpOnly+Secure+SameSite 조합으로 탈취·위조 위협을 줄이는 것입니다.
세션 쿠키에 HttpOnly 속성을 주는 주된 이유는?
이 레슨을 다 읽으셨나요?
완료 표시는 이 브라우저에 저장됩니다.