Vai al contenuto principale
FreeOnlineTools Go
Italiano
Come

Come decodificare un JWT e ispezionarne le affermazioni in modo sicuro

Di FreeOnlineTools Team · 2026-08-28 aggiornata

Risposta rapida

A JWT sono tre stringhe Base64URL unite da punti: header.payload.signature. Decodifica l'intestazione e il payload con la decodifica Base64URL per ispezionare le affermazioni, ma la decodifica legge solo i dati, non verifica l'autenticità. Verifica sempre la firma sul server prima di considerare attendibile qualsiasi richiesta. Utilizza il nostro decodificatore JWT per controllare i token nel tuo browser.

Introduzione

Un token Web JSON (JWT, RFC 7519) è un formato token compatto, URL-safe utilizzato per l'autenticazione e l'autorizzazione. Ha tre parti con codifica Base64URL separate da punti: header.payload.signature. L'intestazione descrive l'algoritmo, il payload contiene attestazioni (ID utente, ruoli, scadenza) e la firma dimostra che il token è stato emesso da una parte attendibile. Fondamentalmente, l'intestazione e il payload sono codificati, non crittografati: chiunque può leggerli.

Passo dopo passo

  1. Dividi il token in tre parti

    Un JWT assomiglia a xxxxx.yyyyy.zzzzz. Dividi il carattere punto per ottenere l'intestazione (parte 0), il payload (parte 1) e la firma (parte 2). Se non sono presenti esattamente tre parti, il token non è valido.

  2. Base64URL decodifica l'intestazione

    L'intestazione è un oggetto JSON con codifica Base64URL come {"alg":"HS256","typ":"JWT"}. Base64URL utilizza - e _ invece di + e / e omette il riempimento. Decodificalo, quindi JSON.parse per leggere l'algoritmo e digitarlo. Il nostro JWT Decoder lo fa automaticamente.

  3. Decodifica Base64URL del payload (dichiarazioni)

    Il carico utile è un JSON oggetto di reclami. Le attestazioni registrate includono iss (emittente), sub (soggetto), aud (audience), exp (scadenza), nbf (non-prima), iat (rilasciato-at) e jti (id token). Le attestazioni private sono specifiche dell'applicazione (ad esempio ruolo, email). Decodifica e ispeziona, ma non fidarti finché non viene verificato.

  4. Controlla le richieste di scadenza e non precedenti

    exp e nbf sono timestamp Unix (secondi). Se l'ora corrente è passata, il token è scaduto e deve essere rifiutato. Se l'ora corrente è precedente a nbf, il token non è ancora valido. Controlla questi lato client per UX, ma applicali lato server per sicurezza.

  5. Verificare la firma sul server (mai lato client)

    La firma è HMAC-SHA256(segreto, header.payload) per HS256 o firma RSA/ECDSA per RS256/ES256. La verifica richiede la chiave segreta o pubblica, che non deve mai raggiungere il browser. Utilizza una libreria come jsonwebtoken (Node) o jose per verificare: non scrivere mai la tua crittografia.

Esempi

Un tipico JWT (tre parti)

Ingresso: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpmeJf36POk6yJV_adQssw5c

Produzione: Header: {"alg":"HS256","typ":"JWT"} Payload: {"sub":"1234567890","name":"John Doe","iat":1516239022}

Carico utile decodificato con affermazioni standard

Ingresso: Payload di un token di autenticazione reale

Produzione: {"sub":"user-42","iss":"freeonlinetoolsgo.com","exp":1767229200,"iat":1767225600,"role":"admin"}

Rilevamento token scaduto

Ingresso: scadenza: 1609459200 (01-01-2021) verificato il 28-08-2026

Produzione: Token is expired —current time (1767225600) > exp (1609459200). Reject and prompt re-login.

Problemi comuni

  • Trattare la decodifica come verifica: chiunque può creare un JWT con qualsiasi dichiarazione e una firma falsa. La decodifica legge il carico utile ma non prova nulla. Verificare sempre la firma con la chiave segreta/pubblica sul server prima di considerare attendibili le attestazioni.
  • Utilizzo dell'algoritmo 'none': la specifica JWT consente alg: none per token non protetti. Se il tuo verificatore accetta alg: none, un utente malintenzionato può forgiare token. Configura la tua libreria in modo che non rifiuti nessuno e inserisci nella whitelist gli algoritmi previsti.
  • Memorizzazione di JWT in localStorage: XSS può leggere localStorage ed estrarre token. Preferisci httpOnly, Secure, SameSite=Cookie rigorosi per token di sessione o token in memoria di breve durata con un cookie di token di aggiornamento.
  • Non controllare exp/aud/iss: un token rubato è valido fino alla scadenza. Controlla sempre exp (scadenza), aud (pubblico previsto) e iss (emittente) su ogni richiesta per impedire la riproduzione del token tra i servizi.

Suggerimenti

  • Utilizza token di accesso di breve durata (15 minuti) più token di aggiornamento di lunga durata: ciò limita la finestra in caso di furto di un token di accesso.
  • Preferisci RS256 (asimmetrico) rispetto a HS256 (simmetrico) quando più servizi verificano i token: ogni servizio ottiene la chiave pubblica e solo l'emittente ha la chiave privata.
  • Utilizza il nostro decodificatore JWT durante lo sviluppo per verificare ciò che il server sta emettendo: mostra l'intestazione decodificata, il carico utile e un riepilogo delle richieste leggibile dall'uomo senza inviare il token da nessuna parte.
  • Non inserire mai dati sensibili (password, PII) in un payload JWT: è codificato Base64, non crittografato e chiunque intercetti il ​​token può leggere ogni richiesta.

Strumenti correlati

Guide correlate

Riferimenti