RevealTheme logo

Decodificatore di JWT

Decodifica i JSON Web Token (JWT) all'istante. Viene eseguito nel suo browser: i token non lasciano mai il suo dispositivo, quindi è sicuro usarlo con segreti di produzione.

Come usare questo strumento

  1. 1

    Incolla il tuo JWT nel campo di input.

  2. 2

    Fai clic su Decodifica. L'header e il payload vengono analizzati e visualizzati.

  3. 3

    Esamina l'algoritmo, i claim, la scadenza e l'emittente.

Che cos'è un JWT e come funziona?

Un JSON Web Token (JWT, definito nella RFC 7519) è un modo compatto e sicuro per URL di rappresentare un insieme di rivendicazioni (claim) su un utente, con prova crittografica che tali rivendicazioni non sono state manomesse. I JWT alimentano l'autenticazione nella maggior parte degli stack web moderni: quando accede, il server crea un JWT che contiene il suo ID utente e i permessi, lo firma con una chiave segreta e glielo restituisce. Il suo browser memorizza il token (di solito in localStorage o in un cookie) e lo include nell'intestazione Authorization di ogni richiesta successiva. Il server verifica la firma a ogni richiesta: se è valida, le rivendicazioni del token sono attendibili; se è stato manomesso, la firma non corrisponde e la richiesta viene rifiutata. I JWT hanno tre parti codificate in Base64URL e separate da punti: l'intestazione dichiara l'algoritmo di firma (HS256 per HMAC-SHA256, RS256 per RSA, ES256 per ECDSA, none per token non firmati, il che è pericoloso e dovrebbe rifiutarli); il payload contiene le rivendicazioni vere e proprie (rivendicazioni standard come 'sub' per il soggetto, 'exp' per la scadenza, 'iat' per la data di emissione, oltre a qualsiasi rivendicazione personalizzata definita dalla sua applicazione); la firma è la prova che l'intestazione e il payload sono stati firmati da qualcuno in possesso del segreto. Questo decodificatore rivela le prime due parti, che sono informazioni pubbliche; la firma può essere verificata solo con la chiave, ed è per questo che ogni decodificatore di JWT mostra le rivendicazioni senza verifica.

Casi d'uso comuni

  • Esegui il debug dei problemi di autenticazione decodificando il JWT inviato dal tuo client: vedi esattamente quali claim sono presenti, chi lo ha emesso e quando scade.

  • Esamina i JWT dei gateway API (AWS Cognito, Auth0, Okta) per comprendere la struttura dei claim destinata ai servizi a valle.

  • Verifica che i claim personalizzati (ID organizzazione, ruolo, feature flag) siano impostati correttamente nel codice che emette il token.

  • Confronta i token prima e dopo un rinnovo per confermare che la scadenza sia stata prolungata.

  • Verifica l'algoritmo di un token: conferma che in produzione si usi RS256 o ES256, mai 'none'.

  • Traduci i payload in base64url dei log del server in claim leggibili.

Domande frequenti

È sicuro usarlo con JWT di produzione?
Sì. La decodifica avviene interamente nel suo browser tramite JavaScript locale: il token non raggiunge mai i nostri server né compare in alcun log. Può verificarlo aprendo DevTools → scheda Rete mentre decodifica: non viene attivata alcuna richiesta in uscita. Detto questo, tratti i JWT come credenziali: non li incolli in URL, screenshot o documenti condivisi, indipendentemente da dove venga eseguito il decodificatore.
Questo strumento verifica la firma?
No. La verifica della firma richiede il segreto (per HS256) o la chiave pubblica (per RS256/ES256/PS256). Gli strumenti web che le chiedono il suo segreto per verificare un JWT sono un campanello d'allarme per la sicurezza: starebbe inviando la sua chiave di firma a uno sconosciuto. Verifichi le firme sul server o con una libreria che controlla lei (jose, jsonwebtoken).
Cosa succede se il mio JWT è scaduto?
La scadenza non impedisce la decodifica: la rivendicazione 'exp' è solo un dato all'interno del payload. Cerchi 'exp' nel payload decodificato: è una marca temporale Unix (secondi dal 1970). La converta con il nostro Convertitore di marche temporali per vedere la scadenza nel suo fuso orario. Se 'exp' è già passato, il token viene rifiutato da qualsiasi verificatore conforme, anche se il decodificatore continua a leggerlo.
I JWT possono essere cifrati?
Sì: questo si chiama JWE (JSON Web Encryption, RFC 7516). Questo strumento gestisce i JWS (JSON Web Signature, il caso comune), in cui il payload è firmato ma visibile. I token JWE hanno 5 parti separate da punti invece di 3 e richiedono la chiave privata del destinatario per essere decifrati. Se il suo token ha 5 parti, le serve uno strumento compatibile con JWE.
Cosa significa 'alg': 'none' ed è pericoloso?
'none' significa che non c'è firma: il token non è firmato e chiunque può falsificare qualsiasi rivendicazione. I sistemi di produzione devono rifiutare esplicitamente i token con 'alg: none'. Alcune librerie li accettano per impostazione predefinita (una nota classe di CVE). Consenta sempre solo gli algoritmi che la sua applicazione si aspetta.
Perché usare i JWT invece dei cookie di sessione?
I JWT sono privi di stato: il server non deve consultare una sessione; il token stesso contiene l'identità e i permessi dell'utente. Questo rende i JWT ideali per i sistemi distribuiti e le API. I cookie di sessione hanno uno stato (richiedono l'archiviazione della sessione sul server) ma sono più facili da invalidare (basta eliminare la sessione). Il compromesso: i JWT scalano meglio, ma non può 'disconnettere un utente' finché il token non scade.
Quali sono le rivendicazioni standard di un JWT?
La RFC 7519 definisce: iss (emittente), sub (soggetto, di solito l'ID utente), aud (destinatario), exp (ora di scadenza), nbf (non prima di), iat (emesso il), jti (ID del JWT). Oltre a queste, le applicazioni aggiungono rivendicazioni personalizzate come 'roles', 'permissions' o 'tenant_id'. Mantenga piccole le rivendicazioni personalizzate: i JWT viaggiano nell'intestazione di ogni richiesta e aumentano il consumo di larghezza di banda.

Strumenti correlati