alltools.one
Security
2026-02-14
9 min
alltools.one Team
jwtauthenticationsecurityapitokens

JWT Token Spiegati: Struttura, Sicurezza, Best Practice

I JSON Web Token compaiono in quasi tutti i sistemi di autenticazione moderni. Quella lunga stringa nel tuo header Authorization — eyJhbGciOiJIUzI1NiIs... — è un JWT, e capire cosa contiene e come funziona è essenziale per costruire applicazioni sicure.

Cos'è un JWT?

Un JWT è un formato di token compatto e URL-safe che trasporta claims (dati) tra due parti. È autocontenuto — il token stesso contiene le informazioni necessarie per verificare la sua autenticità ed estrarre i dati dell'utente, senza richiedere una ricerca nel database.

Decodifica qualsiasi JWT istantaneamente con il nostro JWT Encoder/Decoder. Incolla un token e vedi header, payload e firma scomposti.

Struttura JWT: Tre Parti

Ogni JWT ha tre parti codificate in Base64URL separate da punti:

header.payload.signature

Header

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

Specifica l'algoritmo di firma e il tipo di token.

Payload

{
  "sub": "user123",
  "name": "Alex Chen",
  "role": "admin",
  "iat": 1708963200,
  "exp": 1709049600
}

Contiene i claims — i dati effettivi. I claims standard includono sub (soggetto), iat (emesso il) e exp (scadenza).

Firma

Creata firmando l'header e il payload codificati con una chiave segreta. Questo previene la manomissione — qualsiasi modifica invalida la firma.

Come Funziona l'Autenticazione JWT

  1. L'utente effettua il login con le credenziali
  2. Il server crea un JWT con i claims dell'utente e lo firma
  3. Il server restituisce il JWT al client
  4. Il client invia il JWT nell'header Authorization per le richieste successive
  5. Il server verifica la firma ed estrae i claims — nessuna query al database necessaria

Best Practice di Sicurezza

Verifica Sempre la Firma

Non fidarti mai di un JWT senza verificare la sua firma. Decodifica il payload con il nostro JWT Decoder per ispezionare i token durante lo sviluppo, ma verifica sempre crittograficamente in produzione.

Usa Tempi di Scadenza Brevi

I JWT non possono essere revocati una volta emessi (a differenza dei token di sessione). Mantieni i tempi di scadenza brevi (15-60 minuti) e usa i refresh token per sessioni più lunghe.

Scegli l'Algoritmo Giusto

  • HS256 — HMAC con SHA-256, chiave simmetrica. Semplice, veloce, adatto per app a server singolo
  • RS256 — RSA con SHA-256, chiavi asimmetriche. Migliore per sistemi distribuiti dove più servizi verificano i token
  • Non usare mai "none" — La vulnerabilità alg: "none" ha causato violazioni reali

Proteggi la Chiave Segreta

La tua chiave di firma JWT è la chiave master del tuo sistema di autenticazione. Conservala in modo sicuro, ruotala periodicamente e non esporla mai nel codice lato client.

Non Memorizzare Dati Sensibili nel Payload

I payload JWT sono codificati in Base64, non crittografati. Chiunque può decodificarli. Non includere mai password, numeri di carta di credito o segreti.

Errori Comuni con i JWT

  1. Non validare la scadenza — Controlla sempre il claim exp
  2. Memorizzare i JWT in localStorage — Vulnerabile ad attacchi XSS. Usa invece cookie httpOnly
  3. Token sovradimensionati — I JWT vanno in ogni header di richiesta. Mantieni i payload snelli
  4. Non usare HTTPS — I JWT inviati via HTTP possono essere intercettati

Domande Frequenti

Posso revocare un JWT?

Non direttamente — i JWT sono stateless. Le soluzioni alternative includono tempi di scadenza brevi, blacklist dei token o il cambio della chiave di firma (che invalida tutti i token).

Dovrei usare i JWT per le sessioni?

I JWT funzionano bene per l'autenticazione API e i microservizi. Per le sessioni web tradizionali, le sessioni lato server con cookie sono spesso più semplici e sicure.

In cosa differisce JWT da OAuth?

OAuth è un framework di autorizzazione. JWT è un formato di token. OAuth può usare i JWT come access token, ma risolvono problemi diversi.

Risorse Correlate

Published on 2026-02-14
JWT Tokens Explained: Structure, Security, Best Practices | alltools.one