JotTools .

Come decodificare un JWT (e perche decodificare non e verificare)

JotTools Team 4 min di lettura
Lo strumento di questa guida Apri Decoder JWT

Stai facendo il debug di un flusso di autenticazione e qualcuno ti consegna una lunga stringa di caratteri incomprensibili: eyJhbGciOi.... Quello e un JSON Web Token, o JWT, e al suo interno ci sono dati strutturati che puoi leggere in pochi secondi una volta che sai come. Questa guida spiega di cosa e fatto un JWT, come decodificarlo per ispezionarne i claim e l’unico punto di sicurezza che inganna costantemente gli sviluppatori: decodificare un token non e la stessa cosa che verificarlo. Puoi seguire i passaggi con il Decodificatore JWT gratuito.

Di cosa e fatto un JWT

Un JWT e un modo compatto per trasportare informazioni firmate tra due parti, il piu delle volte per dimostrare chi e un utente dopo aver effettuato l’accesso. Guardando da vicino, vedrai che e diviso in tre parti separate da punti:

header.payload.signature

Ciascuna delle prime due parti e un oggetto JSON codificato in Base64url, motivo per cui sembra una serie di caratteri casuali anziche testo leggibile. I tre pezzi sono:

  • Header (intestazione). Un piccolo JSON che descrive il token, principalmente l’algoritmo di firma (come HS256 o RS256) e il tipo di token.
  • Payload (carico utile). La parte interessante. Contiene i claim: chi e l’utente, quando il token e stato emesso, quando scade e qualsiasi dato personalizzato aggiunto dall’emittente.
  • Signature (firma). Un timbro crittografico creato a partire dall’intestazione, dal carico utile e da una chiave segreta. E cio che consente a un server di confermare che il token non e stato manomesso.

I punti sono separatori letterali, quindi un JWT e sempre composto da tre blocchi Base64url uniti da punti.

Come decodificare e leggere i claim

Decodificare inverte semplicemente la codifica Base64url dell’intestazione e del carico utile in modo da poter leggere il JSON al loro interno. Il Decodificatore JWT gratuito fa questo all’istante e, cosa importante, viene eseguito interamente nel tuo browser, quindi il token che incolli non viene mai inviato da nessuna parte.

  1. Copia il token completo, tutte e tre le parti compresi i punti.
  2. Incollalo nel Decodificatore JWT.
  3. Leggi l’intestazione e il carico utile decodificati come JSON formattato.

Nel carico utile vedrai spesso claim standard: sub per il soggetto (di solito un id utente), iat per l’ora di emissione, exp per la scadenza e iss per l’emittente. I valori temporali sono in genere timestamp Unix. Leggerli e il modo piu veloce per rispondere a domande come ‘questo token e scaduto?’ o ‘per quale utente e?’ durante il debug.

Decodificare non e verificare

Ecco il punto che vale la pena imprimere nella memoria. Chiunque possieda il token puo decodificare l’intestazione e il carico utile, senza chiave e senza password. La codifica e reversibile per progettazione, esattamente come Base64. Decodificare ti dice cosa afferma il token, ma non ti dice nulla sul fatto che tali affermazioni siano affidabili.

Verificare e un passaggio separato e crittografico. Un server ricalcola la firma usando la chiave segreta o pubblica e controlla che corrisponda alla firma nel token. Solo una firma valida dimostra che il token e stato emesso da chi dice e che non e stato alterato. Un decodificatore non puo farlo per te, perche non possiede la chiave. Quindi non decidere mai che ‘questo utente e autenticato’ basandoti solo su una decodifica, quel controllo deve avvenire sul server con la chiave appropriata.

Non mettere mai segreti nel carico utile

Poiche il carico utile e facilmente leggibile da chiunque possieda il token, e il posto sbagliato per qualsiasi cosa sensibile. Non inserire password, chiavi API o dati personali privati nel carico utile di un JWT, poiche e di fatto pubblico per chiunque intercetti o riceva il token. La firma impedisce la manomissione, non la lettura. Tratta il carico utile come visibile per impostazione predefinita e mantieni i segreti lato server.

Strumenti correlati per ispezionare i token

La decodifica di un JWT porta spesso ad alcune attivita vicine. Se vuoi capire il livello Base64url stesso, lo strumento di codifica e decodifica Base64 ti consente di sperimentare con la stessa codifica usata dal token. Una volta ottenuto un carico utile decodificato, il Formattatore JSON lo indentera e lo riordinera in modo che un insieme di claim profondamente annidato sia facile da scorrere. E se stai ragionando su come viene costruita la firma, il Generatore di Hash e un buon modo per vedere come si comporta l’hashing unidirezionale, dato che la firma si basa su primitive crittografiche correlate.

La versione breve

Un JWT e composto da tre parti codificate in Base64url, intestazione, carico utile e firma, unite da punti. Decodificare inverte la codifica in modo da poter leggere i claim, il che e perfetto per il debug. Ricorda solo che decodificare non e verificare: il carico utile e leggibile da chiunque, quindi non memorizzarci mai segreti, e verifica sempre la firma sul server prima di fidarti di un token. Quando devi ispezionarne uno in modo rapido e privato, il Decodificatore JWT gratuito lo legge direttamente nel tuo browser.

Prova Decoder JWT ora

Decoder JWT online gratuito. Incolla un JSON Web Token per leggere subito header e payload come JSON pulito. Funziona nel browser, niente viene caricato.

Apri Decoder JWT

Strumenti gratuiti correlati