Come decodificare i token JWT e ispezionare le richieste in modo sicuro
Risposta rapida
Per decodificare un JWT: incolla il token nel decodificatore JWT e l'intestazione e il payload verranno visualizzati immediatamente come formattati JSON. Lo strumento decodifica localmente le parti codificate Base64URL: il tuo token non lascia mai il tuo browser. Ricorda: la decodifica mostra solo i contenuti; non verifica la firma.
Introduzione
Un JWT (JSON Web Token) è un formato token compatto, URL-safe utilizzato per l'autenticazione e lo scambio di informazioni. Un JWT ha tre parti separate da punti: header.payload.signature. L'intestazione specifica l'algoritmo e il tipo di token, il payload contiene attestazioni (ID utente, ruoli, scadenza) e la firma dimostra che il token non è stato manomesso. La decodifica di un JWT ti consente di ispezionarne il contenuto per il debug, ma la decodifica non ne verifica l'autenticità. Questa guida ti mostra come decodificare i JWT in modo sicuro nel tuo browser.
Passo dopo passo
-
Apri lo strumento JWT Decodificatore
Vai alla pagina dello strumento decodificatore JWT. Lo strumento accetta qualsiasi stringa JWT (tre parti con codifica Base64URL separate da punti).
-
Incolla il tuo token JWT
Incolla JWT nel campo di input. Un tipico JWT assomiglia a: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1c2VyMSJ9.signature. Lo strumento rileva automaticamente le tre parti.
-
Esaminare l'intestazione decodificata
Lo strumento Base64URL decodifica la prima parte e la visualizza come JSON. L'intestazione in genere contiene "alg" (algoritmo, ad esempio HS256) e "typ" (tipo, solitamente "JWT").
-
Esaminare il payload decodificato (dichiarazioni)
Lo strumento decodifica la seconda parte e visualizza le attestazioni nel formato JSON. Le affermazioni più comuni includono "sub" (ID oggetto/utente), "iat" (rilasciato a), "exp" (scadenza) e "role" (ruolo utente).
-
Verifica della firma (terza parte)
Lo strumento mostra la parte della firma. Nota: la decodifica NON verifica la firma. Per verificare, sono necessarie la chiave di firma e una libreria di verifica. Non fidarti mai delle affermazioni di JWT senza verificare la firma lato server.
Esempi
Decodifica un semplice JWT
Ingresso: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyMSIsIm5hbWUiOiJBbGljZSIsImlhdCI6MTY5MzUyNjQwMH0.signature
Produzione: Header: {"alg":"HS256","typ":"JWT"}
Payload: {"sub":"user1","name":"Alice","iat":1693526400}
JWT con richiesta di scadenza
Ingresso: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiIsImV4cCI6MTY5MzYxMjgwMH0.sig
Produzione: Header: {"alg":"HS256"}
Payload: {"sub":"admin","exp":1693612800}
Problemi comuni
- Confondere decodifica con verifica: decodificare un JWT ne legge solo il contenuto; NON dimostra che il token sia autentico. Verifica sempre la firma lato server con la chiave di firma.
- Fidarsi dei token scaduti: controlla l'affermazione "exp" e rifiuta i token scaduti. Il valore 'exp' è un timestamp Unix in secondi.
- Base64 vs Base64URL —JWT utilizza la codifica Base64URL (senza riempimento, - e _ invece di + e /). Un decodificatore Base64 standard fallirà sulle parti JWT.
- I dati sensibili nel payload —JWT payload sono leggibili da chiunque abbia il token. Non archiviare password, numeri di carte di credito o altri segreti nel payload.
Suggerimenti
- Verifica sempre la firma JWT lato server prima di fidarti di qualsiasi affermazione: la sola decodifica non è un'autenticazione.
- Controlla le affermazioni "exp" (scadenza) e "nbf" (non prima) per assicurarti che il token sia valido per l'ora corrente.
- Utilizza token di breve durata (15-60 minuti) con token di aggiornamento per sessioni lunghe: riduce al minimo i danni in caso di perdita di un token.
- Utilizza il nostro decodificatore JWT per un debug locale sicuro: il tuo token non lascia mai il tuo browser.