Come decodificare un JWT in modo sicuro e verificarne l'autenticità
I token Web JSON (JWT) vengono utilizzati ovunque, nell'autenticazione, nelle richieste API e nello scambio sicuro di dati, ma molti sviluppatori li trattano come scatole nere opache. Decodificare un JWT è semplice, ma fidarsi di esso senza verifica è un rischio per la sicurezza. Questa guida ti mostra come ispezionare i token in modo sicuro e capire con cosa stai effettivamente lavorando.
Cos'è un JWT?
Un JWT è composto da tre sezioni con codifica base64 separate da punti: header.payload.signature. L'intestazione descrive il tipo di token e l'algoritmo, il payload contiene attestazioni (dati dell'utente) e la firma dimostra che il token non è stato manomesso. Il carico utile è leggibile dall'uomo una volta decodificato, ma ciò non significa che sia affidabile: chiunque può falsificare o modificare i dati al suo interno.
Perché la sola decodifica non è sufficiente
Gli aggressori possono creare un JWT dall'aspetto valido e modificare le affermazioni al suo interno. Un token decodificato in JSON valido potrebbe concedere false autorizzazioni o impersonare un altro utente. Il passaggio fondamentale è verificare la firma rispetto alla chiave segreta del server: senza tale controllo, un token decodificato ti dice ciò che afferma il token, non ciò che è effettivamente vero.
Come decodificare un JWT
Usa il Decodificatore JWT per ispezionare qualsiasi token. Incolla il token e vedrai immediatamente l'intestazione, il payload e la firma separati. Il payload è in genere codificato in base64url e il file Base64 lo strumento può aiutarti a decodificare dati aggiuntivi se necessario. Questa suddivisione visiva chiarisce quali informazioni contiene il token e se ha senso per l'uso previsto.
Verifica della firma
Dopo la decodifica, è necessario verificare che il token sia autentico. Ciò richiede la chiave segreta o pubblica del server (per algoritmi asimmetrici). Puoi verificare manualmente una firma ricalcolandola: prendi l'intestazione e il payload, firmali con lo stesso algoritmo e chiave e confronta il risultato con signature sezione. UN generatore di hash può aiutarti a capire come vengono create le firme crittografiche, sebbene la maggior parte della verifica avvenga lato server nelle applicazioni reali.
Privacy e sicurezza
Quando decodifichi un JWT nel file Decodificatore JWT, l'intero processo avviene nel tuo browser. Il tuo token non lascia mai il tuo dispositivo, non raggiunge mai un server e non viene mai registrato da nessuna parte. Lo strumento funziona offline dopo il caricamento della pagina, quindi puoi ispezionare in sicurezza i token sensibili senza esposizione alla rete. Ciò è importante perché i JWT spesso contengono ID utente, autorizzazioni o altri dati che non desideri vengano trasmessi a terzi.
Errori comuni da evitare
- Affidarsi a un payload decodificato senza verificare la firma.
- Memorizzazione di JWT in localStorage senza HTTPS (vulnerabile a XSS).
- Dimenticando che il payload è solo codificato base64, non crittografato.
- Supponendo che un token sia valido solo perché decodifica in modo pulito.