Skip to content
Go DevBJ
Go back

JWT Decoder and Header Inspector, 토큰 구조를 로컬에서 확인하기

Edit page

JWT를 디버깅할 때 가장 먼저 보는 것은 보통 payload입니다.

하지만 token을 아무 온라인 사이트에 붙여 넣기에는 찝찝합니다.

특히 실제 환경 token에는:

같은 정보가 들어갈 수 있습니다.

그래서 만든 도구가 JWT Decoder and Header Inspector입니다.

어떤 도구인가

이 도구는 JWT를 브라우저 안에서 decode합니다.

확인할 수 있는 것은 다음과 같습니다.

중요한 점은 이 도구가 서명을 검증하지 않는다는 것입니다.

즉:

decode 가능 != 검증 완료

입니다.

기본 사용법

  1. JWT input에 token을 붙여 넣습니다.
  2. Decode 버튼을 누르거나 자동 결과를 확인합니다.
  3. header와 payload를 봅니다.
  4. claim table에서 시간 관련 claim을 확인합니다.
  5. 필요한 경우 Copy payload로 payload JSON을 복사합니다.

Sample 버튼을 누르면 구조를 보기 좋은 예제 token을 넣을 수 있습니다.

header에서 볼 것

JWT header에서는 보통 algtyp를 봅니다.

{
  "alg": "HS256",
  "typ": "JWT"
}

여기서 alg는 서명 알고리즘을 의미합니다.

보안 이슈를 볼 때는 token이 어떤 알고리즘을 선언하는지, 서버가 그 값을 어떻게 검증하는지까지 봐야 합니다.

이 도구는 header를 보여줄 뿐, 알고리즘 안전성을 보장하지는 않습니다.

payload에서 볼 것

payload에서는 registered claim을 먼저 확인하는 편이 좋습니다.

특히 exp는 자주 봅니다.

토큰이 만료됐는데 API 요청이 401로 실패하는 경우가 많기 때문입니다.

조심해야 할 점

JWT는 Base64URL로 인코딩되어 있을 뿐 암호화된 것이 아닙니다.

누구나 decode해서 payload를 읽을 수 있습니다.

그래서 JWT payload에는 비밀번호나 민감한 개인 정보를 넣으면 안 됩니다.

또한 이 도구에서 decode가 성공했다고 해서 token이 신뢰 가능한 것은 아닙니다.
서명 검증은 서버의 secret/public key와 정책이 있어야 가능합니다.

한 줄 요약

JWT Decoder and Header Inspector는 JWT header와 payload, 시간 claim을 로컬에서 확인하는 도구이며, decode와 signature verification은 반드시 구분해서 봐야 합니다.


Edit page
Share this post on:

Previous Post
Secure Password and Salt Generator, 임시 비밀번호와 salt 만들기
Next Post
Regex Live Tester and Cheat Sheet, 정규식을 바로 테스트하기