[HTTP 보안] JWT 저장 방식별 장단점

2026. 1. 23. 15:04·네트워크

JWT를 어디에 저장할지는 XSS(스크립트 해킹)와 CSRF(요청 위조) 중 무엇을 더 경계하느냐에 따라 갈립니다.


로컬스토리지

주로 프론트엔드 개발자들이 구현의 편의성을 위해 자주 사용한다고 합니다.

  • 장점:
    자바스크립트로 쉽게 읽고 쓸 수 있어 구현이 매우 단순합니다.
    헤더에 직접 담아 보내므로 CSRF 공격으로부터 원천적으로 안전합니다.
  • 단점:
    XSS(Cross-Site Scripting) 공격에 취약합니다.
    공격 스크립트가 실행되면 `localStorage.getItem()` 한 줄로 사용자의 토큰을 바로 탈취당합니다.

쿠키 (feat. HttpOnly)

일반적으로 더 권장되는 방식입니다. 다만, 로컬스토리지보다는 설정의 복잡성이 있습니다.

  • 장점:
    HttpOnly 설정을 하면 자바스크립트가 쿠키를 읽을 수 없습니다.
    즉, XSS 공격으로 토큰을 훔쳐가는 것이 불가능합니다.
  • 단점:
    브라우저가 요청마다 쿠키를 자동으로 실어 보내므로 CSRF 공격에 노출됩니다.
    그러나, SameSite 설정을 하거나 CSRF 설정을 켜면 됩니다.

가장 권장되는 하이브리드 전략

최근에는 로컬스토리지와 쿠키의 장점을 합친 방식을 사용합니다.
수명이 짧은 액세스 토큰과 수명이 긴 리프레시 토큰을 따로 두는 방법입니다.

  • Access Token:
    자바스크립트 메모리(변수)에 저장합니다.
    수명이 짧고 페이지 새로고침 시 사라지지만, XSS로부터 가장 안전합니다.
  • Refresh Token:
    HttpOnly + Secure 쿠키에 저장합니다.
    Access Token이 만료되면 이 쿠키를 이용해 서버로부터 새 토큰을 받아옵니다.

'네트워크' 카테고리의 다른 글

TCP상에서 HTTP 뜯어보기: HTTP Message  (0) 2025.10.22
'네트워크' 카테고리의 다른 글
  • TCP상에서 HTTP 뜯어보기: HTTP Message
devracoon
devracoon
  • devracoon
    개발하는 너굴맨
    devracoon
  • 전체
    오늘
    어제
    • 분류 전체보기 (10) N
      • 개발 (6)
      • 언어&프레임워크 (0)
      • 자료구조&알고리즘 (1)
      • 컴퓨터구조 (0)
      • 데이터베이스 (0)
      • 네트워크 (2) N
      • 클라우드컴퓨팅 (0)
      • 티스토리 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    short-url
    docker
    티스토리
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
devracoon
[HTTP 보안] JWT 저장 방식별 장단점
상단으로

티스토리툴바