Cos'è un JWT e come decodificarlo in sicurezza
Una guida pratica alla struttura dei JWT e al perché incollare un token di produzione in un decoder online casuale è più rischioso di quanto sembri.
Cosa contiene davvero un JWT
Un JSON Web Token (JWT) è una stringa compatta, sicura per gli URL, divisa in tre parti separate da punti: header.payload.signature. È la spina dorsale dell'autenticazione moderna — usato per token di sessione, accesso alle API e single sign-on in quasi ogni framework web.
Ogni parte è JSON codificato in base64url:
- Header — dichiara l'algoritmo di firma (es.
HS256,RS256) e il tipo di token. - Payload — i claim effettivi:
sub(soggetto),exp(scadenza),iat(data di emissione) e qualsiasi dato personalizzato aggiunto da chi ha emesso il token. - Signature — dimostra che il token non è stato manomesso, generata con una chiave segreta o privata.
Il problema con la maggior parte dei decoder JWT online
Incollare un token in un sito "JWT decoder" casuale invia quella stringa al loro server per l'elaborazione. Se il token proviene da un sistema di produzione — la tua sessione, un token API interno — hai appena consegnato una credenziale attiva a terzi. La maggior parte dei JWT non è cifrata, solo firmata: chiunque legga il payload può vedere ogni claim al suo interno.
Decodificare in sicurezza
Il JWT Decoder di Askerium analizza il token interamente nel tuo browser usando la decodifica base64url standard — nulla viene trasmesso da nessuna parte. Puoi controllare in sicurezza:
- L'algoritmo di firma e il tipo di token
- Tutti i claim del payload, con la scadenza convertita in una data leggibile
- Se la struttura del token è valida (tre segmenti correttamente codificati)
Nota che la decodifica rivela solo il contenuto — non verifica la firma senza la chiave segreta, quindi un token decodificato non è una prova che chi lo ha emesso lo abbia effettivamente firmato.
Quando usarlo
Debuggare un flusso di autenticazione, capire perché una sessione è scaduta, o ispezionare quali claim restituisce davvero un'API — tutti compiti comuni da developer in cui decodificare un JWT istantaneamente e in sicurezza ti evita di scrivere uno script usa-e-getta.