Hamutaro - Hamtaro 4

Infra/Security

[Security] JWT + HttpOnly Cookie + SameSite 전략 정리

carsumin 2026. 2. 14. 14:02
현재 구조

 

  • 둘 다 LocalStorage에 저장하면?
    • XSS 공격 시 탈취 위험
    • 보안 취약
  • 둘 다 쿠키에 넣으면?
    • CSRF 위험 증가
  • 현재 구조는
    • Access Token -> JS에서 제어 가능
    • Refresh Token -> HttpOnly로 JS 접근 차단
    • SameSite로 CSRF 방어
토큰 저장 위치 목적
Access Token Authorization Header API 인증
Refresh Token HttpOnly Cookie 재발급용

 

 

HttpOnly가 하는 일
.httpOnly(true)
  • JS에서 쿠키 접근 불가
  • document.cookie로 읽을 수 없음
  • XSS 방어

 

SameSite 옵션 정리
  • Strict
    • 다른 사이트에서 절대 쿠키 전송 안됨
    • 보안 강함
    • UX 깨질 수 있음
  • Lax
    • GET 이동은 허용
    • POST 자동 전송 등은 차단
    • CSRF 대부분 방어
    • 일반 웹 서비스에 적절
  • None
    • 모든 요청에 쿠키 전송
    • 반드시 Secure = true 필요
    • 프론트 / 백 도메인 분리 시 필수
  • 로컬 개발
.httpOnly(true)
.sameSite("Lax")
.secure(false)
  • 배포 후
.httpOnly(true)
.sameSite("None")
.secure(true)

 

 

전체 보안 구조
[Login]
   ↓
AccessToken → 응답 body
RefreshToken → HttpOnly Cookie

[API 요청]
   Authorization: Bearer AccessToken

[Access 만료]
   ↓
POST /auth/refresh
   ↓
Cookie에 있는 RefreshToken 자동 전송
   ↓
새 AccessToken 발급

 

RefreshToken을 쿠키에 넣은 이유
  • JS 접근 차단
  • 자동 전송
  • XSS 공격 시 탈취 어려움

 

'Infra > Security' 카테고리의 다른 글

[Security] CSRF 란?  (0) 2026.02.10