피드로 돌아가기
Dev.toSecurity
원문 읽기
XSS 방어를 위한 JWT 저장소의 localStorage에서 HttpOnly Cookie로의 전환
Stop Storing JWTs in localStorage: A Security Guide for Web Developers
AI 요약
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에 저장하는 데이터 분류 체계 적용