mason
mason-log.

mason

mason.

안녕하세요. mason 입니다.

network

Cookie, Session, JWT.

인증 상태 저장 방식 비교, HttpOnly, SameSite, 프론트엔드 역할

방식저장특징
Cookie브라우저 (자동 전송)Session ID carrier, HttpOnly로 XSS 완화
Session서버 메모리/DBcookie에 session id만, state 서버-side
JWTclient storage or cookieself-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)

세션 쿠키와 JWT 인증 흐름 비교

  1. 로그인 성공 → 서버 session 생성, id 발급
  2. Set-Cookie: sessionId=...; HttpOnly
  3. 이후 요청 cookie → 서버 lookup
  4. 로그아웃 시 서버 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 시)

🔗 참고 자료