JWT
Decodificatore JWT
Decodifica l'header e il payload di un JSON Web Token.
Informazioni sui JWT
Un JSON Web Token racchiude un header, un payload e una firma in tre segmenti codificati in Base64URL uniti da punti. L'header e il payload sono solo JSON codificato che chiunque può leggere, mentre la firma è ciò che dimostra effettivamente che il token non è stato manomesso.
Il campo alg dell'header indica l'algoritmo di firma, ma poiché l'header è solo JSON decodificato e non verificato, un client non può fidarsi che affermi qualcosa di vero — una classe nota di vulnerabilità JWT consiste nel fatto che un attaccante cambia alg in "none" e rimuove la firma, sperando che un verificatore poco attento accetti un token non firmato. Una verifica reale deve controllare la firma rispetto a un algoritmo e una chiave specifici, scelti dal server verificatore stesso, mai letti dal token. I claim exp e iat del payload sono timestamp Unix (secondi dall'epoca, non millisecondi) — abbina questo strumento al Convertitore di timestamp per leggerli come date di calendario.
Dove lo incontrerai
- Ispezionare un access token o ID token emesso da un provider OAuth o OIDC
- Eseguire il debug del motivo per cui a un token manca un claim previsto
- Controllare la scadenza o l'emittente di un token senza scrivere codice
- Capire cosa un'API o una libreria di terze parti inserisce realmente nei suoi token
Domande frequenti
La decodifica verifica la firma?
No — questo decodifica solo header e payload per permetterti di leggerli. Non controlla la firma, quindi un token decodificato non è prova che sia autentico o non scaduto.
Posso fidarmi dei claim in un token che non ho verificato?
Non per decisioni di sicurezza. Chiunque può creare un JWT con claim arbitrari; solo una firma verificata rispetto alla chiave dell'emittente rende il contenuto attendibile.
Il token che incollo qui viene memorizzato?
No. La decodifica avviene interamente per quella richiesta; non viene registrato né conservato nulla.
Ci si può fidare del campo alg dell'header?
Non da solo. L'header è JSON non verificato e controllabile da un attaccante, per chiunque legga un token grezzo — un noto attacco JWT imposta alg su "none" e rimuove del tutto la firma, sperando che un verificatore che si fida ciecamente dell'header lo accetti come valido. Un codice di verifica corretto stabilisce a priori quale algoritmo e quale chiave si aspetta e non prende mai questa decisione dal token stesso. Questo strumento decodifica solo per la lettura; non prende alcuna decisione di fiducia.