tomai
로그인

JWT가 새는 것들 — 프로덕션 토큰을 온라인에 붙여넣지 말아야 하는 이유

JSON Web Token은 난수처럼 보이지만 정확히 세 부분으로 이루어집니다: header, payload, signature. 각 부분의 역할을 아는 것은 보안 스킬입니다.

서명은 변조 방지 — 읽기 방지가 아님

header와 payload는 평범한 Base64URL입니다. 토큰을 가진 누구나 user id, email, 역할, 만료 같은 클레임을 쉽게 읽습니다. 서명이 증명하는 것은 비밀키 없는 자가 페이로드를 바꾸지 않았다는 것뿐입니다.

고전적 함정: alg=none

서버가 algorithm=none 토큰을 받아들이면 서명이 완전히 건너뛰어집니다 — 유명한 계정 탈취 버그 계열입니다. 서버는 기대하는 알고리즘을 고정해야 합니다.

프로덕션 토큰을 아무 사이트에나 붙여넣지 마세요

세션 토큰은 bearer 자격증명입니다. 가진 자는 만료까지 당신으로 행동할 수 있습니다. 살아있는 토큰을 모르는 디코더에 붙여넣는 것은 세션을 그 사이트에 넘기는 일입니다. 검사할 때는 브라우저에서 로컬로 디코딩하는 도구를 쓰세요 — 우리 JWT 디코더는 아무것도 전송하지 않습니다 — 그리고 처음부터 테스트 토큰을 쓰는 게 최선입니다.

빠른 체크리스트

  • 신뢰 전에 exp 확인
  • 알고리즘이 서버 기대와 일치하는지 확인
  • 모든 토큰은 읽을 수 있는 것, 절대 비밀이 아님

토큰을 안전하게 검사: 로컬 디코딩 — header와 payload가 즉시 표시되고 아무것도 전송되지 않습니다.