피드로 돌아가기
Stop Storing JWTs in localStorage: A Security Guide for Web Developers
Dev.toDev.to
Security

XSS 방어를 위한 JWT 저장소의 localStorage에서 HttpOnly Cookie로의 전환

Stop Storing JWTs in localStorage: A Security Guide for Web Developers

Damilola Owolabi2026년 5월 14일4intermediate

Context

웹 애플리케이션 인증을 위해 JWT를 localStorage에 저장하는 기존 방식의 보안 취약점 분석. JavaScript 접근이 가능한 저장소 특성으로 인해 XSS 공격 시 인증 토큰이 즉각적으로 탈취되는 구조적 한계 존재.

Technical Solution

  • JavaScript 접근을 완전히 차단하는 httpOnly 플래그 적용을 통한 XSS 공격 경로 제거
  • HTTPS 연결 환경에서만 전송을 보장하는 secure 플래그 설정을 통한 네트워크 스니핑 방지
  • 브라우저의 SameSite: strict 설정을 통한 CSRF 공격 가능성 최소화 및 요청 신뢰성 확보
  • 클라이언트 사이드에서 Authorization 헤더를 수동으로 구성하던 로직을 브라우저 자동 쿠키 전송 메커니즘으로 대체
  • 인증 데이터와 일반 UI 상태 데이터를 분리하여 보안 수준에 따른 저장소 계층화 설계

1. 인증 토큰 저장 시 localStorage 대신 HttpOnly, Secure, SameSite 플래그가 설정된 쿠키 사용 여부 확인

2. 클라이언트 스크립트 내에서 인증 토큰에 직접 접근하는 로직 제거

3. 테마 설정, UI 상태 등 비민감 데이터만 localStorage에 저장하는 데이터 분류 체계 적용

원문 읽기