network
Cookie, Session, JWT.
인증 상태 저장 방식 비교, HttpOnly, SameSite, 프론트엔드 역할
| 방식 | 저장 | 특징 |
|---|---|---|
| Cookie | 브라우저 (자동 전송) | Session ID carrier, HttpOnly로 XSS 완화 |
| Session | 서버 메모리/DB | cookie에 session id만, state 서버-side |
| JWT | client storage or cookie | self-contained, stateless, revoke 어려움 |
🍪 Cookie 속성
- HttpOnly: JS
document.cookie접근 불가 → XSS 토큰 탈취 완화 - Secure: HTTPS only
- SameSite:
Strict/Lax/None— CSRF 완화 - Domain/Path, Max-Age/Expires
🗂️ Session (server-side)
- 로그인 성공 → 서버 session 생성, id 발급
Set-Cookie: sessionId=...; HttpOnly- 이후 요청 cookie → 서버 lookup
- 로그아웃 시 서버 session 삭제
🔑 JWT
- Header.Payload.Signature (Base64 + HMAC/RSA)
- Access token 짧게 + Refresh token (HttpOnly cookie 권장)
- 프론트:
Authorization: Bearer(localStorage는 XSS 위험 — cookie HttpOnly 선호)
✅ 프론트엔드 체크
- 민감 토큰 localStorage 최소화
- refresh rotation, short TTL
- CSRF: SameSite cookie + CSRF token (cookie session 시)
🔗 참고 자료
- MDN: HTTP cookies — 쿠키 동작과 보안 속성을 설명한다.
- RFC 6265: HTTP State Management Mechanism — HTTP 쿠키의 IETF 표준이다.
- RFC 7519: JSON Web Token (JWT) — JWT 구조와 클레임을 정의한다.
