JWT 보안 기본: 디코드, 검증 및 일반적인 실수

개발자를 위한 실용적인 JWT 가이드: 구조, 로컬 디코딩, 만료 확인 및 디코딩이 검증되지 않는 이유.

· 모든 가이드

JWT 란 무엇인가

JSON 웹 토큰(JWT)은 세션, API 승인 및 서비스-투-서비스 클레임에 사용되는 컴팩트 문자열 형식입니다.일반적인 JWT에는 세 가지 Base64URL 세그먼트가 있습니다: 헤더 (알고리즘과 유형), 페이로드 (사용자 ID와 exp와 같은 클레임) 및 서명 (올바르게 확인할 때 무결성을 증명합니다).

Towalles jwt-decoder를 사용하면 브라우저에 로컬로 토큰을 브브레이스트하고 헤더와 페이로드 JSON을 즉시 검사합니다.아무것도 업로드되지 않습니다. 개발자 환경 디버그, 만료 확인 및 예기치 못한 401 응답 문제 해결에 이상적입니다.

디코딩은 검증이 아닙니다.

누구나 JWT 헤더와 페이로드를 Base64로 디코딩할 수 있으므로 클레임에 암호나 전체 카드 번호를 입력하지 마십시오.서명이 존재하므로 서버가 토큰이 신뢰할 수 있는 당사자에 의해 발행되었고 조작되지 않았음을 확인할 수 있습니다.

일반적인 오류: "프론트 엔드에서 JWT를 디코딩하고 역할을 보았습니다: 관리자, 따라서 사용자는 관리자입니다". 공격자는 앱이 확인 없이 디코딩되지 않는 한 페이로드를 위조할 수 있습니다.항상 서버에서 서명과 클레임 (exp, aud, iss) 을 확인합니다.

실용적인 디버그 팁

exp가 통과되었는지 확인하십시오.시계 스키브를 허용합니다.alg이 기대와 일치한다는 것을 확인하십시오 (alg:none 또는 알고리즘 혼란에 대해 조심하십시오).iss/aud을 서비스에 맞추십시오.HS256의 경우 서버 측에서만 비밀을 유지하십시오.jwt-generator는 생산 클라이언트 코드가 아닌 로컬 개발자를 위한 것입니다.

해시 생성기와 hmac 생성기를 결합하여 서명과 HMAC를 이해하십시오: JWT 서명은 구조화된 프로토콜입니다.HMAC는 일반 메시지 인증입니다.API 웹호크를 검증할 때 hmac-generator를 사용합니다.

개인 정보 보호 및 준수

로컬 도구에서도 스크린 녹음, 로그 또는 티켓에 생산 토큰을 누출하지 마십시오.비밀을 회전하고 액세스 토큰을 단기간 유지하고 민감한 작업에 대해 새로 고침하거나 단계 증명을 사용합니다.Towalles 도구 페이지에는 팀 보안 기본선을 일치시키기 위해 튜토리얼과 FAQ가 포함되어 있습니다.

관련 도구