Vai al contenuto principale
FreeOnlineTools Go
Italiano
Spiegazione

Cos'è un JWT? Una spiegazione completa dei token Web JSON

Di FreeOnlineTools Team · 2026-09-02 aggiornata

Risposta rapida

A JWT è una stringa con tre parti con codifica Base64URL separate da punti: header.payload.signature. L'intestazione specifica l'algoritmo, il payload contiene attestazioni (ID utente, ruoli, scadenza) e la firma dimostra l'autenticità. I JWT vengono utilizzati per l'autenticazione senza stato. Utilizza il nostro decodificatore JWT gratuito per controllare il contenuto del token nel tuo browser.

Introduzione

Un JWT (JSON Web Token) è un formato token compatto, URL-safe definito da RFC 7519 per la trasmissione sicura di informazioni tra le parti come oggetto JSON. I JWT sono ampiamente utilizzati per l'autenticazione e l'autorizzazione nelle applicazioni web: dopo che un utente ha effettuato l'accesso, il server emette un JWT che il client include nelle richieste successive per dimostrare l'identità. I JWT sono senza stato: il server non ha bisogno di cercare il token in un database; il token stesso contiene le affermazioni dell'utente e una firma che dimostra che non è stato manomesso.

Passo dopo passo

  1. Comprendere la struttura in tre parti

    Un JWT è composto da tre parti: intestazione (algoritmo e tipo), payload (dichiarazioni) e firma (dimostra l'integrità). Ogni parte è codificata URL Base64 e separata da punti: eyJhbGciOi...J9.eyJzdWIi...J9.signature. Le prime due parti sono leggibili da chiunque abbia il token; solo la firma richiede la chiave segreta.

  2. Impara le affermazioni standard

    Il payload contiene affermazioni: dichiarazioni sull'argomento. Affermazioni standard: 'sub' (ID soggetto/utente), 'iat' (emesso al timestamp), 'exp' (scadenza), 'nbf' (non prima), 'iss' (emittente), 'aud' (audience). Le attestazioni personalizzate possono includere ruoli, autorizzazioni o qualsiasi altro dato.

  3. Comprendere gli algoritmi di firma

    I JWT utilizzano la firma simmetrica (HS256 — segreto condiviso) o asimmetrica (RS256, ES256 — coppia di chiavi pubblica/privata). La firma impedisce la manomissione: la modifica di qualsiasi parte del token invalida la firma. Solo il detentore della chiave segreta/privata può creare token validi.

  4. Utilizza JWT per l'autenticazione

    Dopo l'accesso, il server crea un JWT e lo invia al client. Il client include JWT nell'intestazione dell'autorizzazione (token portatore) per le richieste successive. Il server verifica la firma e controlla la scadenza, senza necessità di ricerca nel database.

Esempi

struttura JWT

Ingresso: Un tipico JWT

Produzione: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1c2VyMSIsImV4cCI6MTY5MzYxMjgwMH0.signature

Intestazione decodificata

Ingresso: Prima parte decodificata

Produzione: {"alg": "HS256", "typ": "JWT"}

Carico utile decodificato

Ingresso: Seconda parte decodificata

Produzione: {"sub": "user1", "name": "Alice", "iat": 1693526400, "exp": 1693612800}

Problemi comuni

  • Decodificare o verificare: decodificare un JWT (leggerne il contenuto) NON dimostra che sia autentico. Verificare sempre la firma lato server con la chiave segreta prima di considerare attendibili le attestazioni.
  • Memorizzazione di JWT in localStorage: questo li rende accessibili a JavaScript, vulnerabili agli attacchi XSS. Memorizza in httpOnly i cookie per una migliore sicurezza.
  • Token di lunga durata: se un token viene rubato, rimane valido fino alla scadenza. Utilizza token di accesso di breve durata (15-60 minuti) con token di aggiornamento per sessioni lunghe.
  • Dati sensibili nel payload: il payload è leggibile da chiunque abbia il token (è Base64, non crittografato). Non inserire mai password, carte di credito o segreti nel payload.

Suggerimenti

  • Verifica sempre la firma JWT lato server prima di fidarti di qualsiasi affermazione: la sola decodifica non è un'autenticazione.
  • Utilizza token di accesso di breve durata (15-60 minuti) con token di aggiornamento per sessioni lunghe per ridurre al minimo i danni derivanti dal furto di token.
  • Archivia i JWT nei cookie httpOnly, Secure, SameSite anziché in localStorage per prevenire attacchi XSS.
  • Utilizza il nostro decodificatore JWT per ispezionare i contenuti del token per il debug: il tuo token non lascia mai il tuo browser.

Strumenti correlati

Guide correlate

Riferimenti