Il token che vale per sempre: sessioni che non scadono davvero

L'utente preme «esci», ma la chiave che aveva in tasca funziona ancora. È un difetto silenzioso, comunissimo, e si prova in un minuto.

7 minSviluppatori, chi mantiene un'app con login

Cosa portare a casa

Risposta breve

Quando un utente fa il login, l'applicazione gli consegna una prova di identità — una sessione o un token, spesso nel formato JWT definito dalla RFC 7519 — che accompagna le richieste successive. Il difetto nasce quando quella prova resta valida anche dopo il logout, o non scade mai, o non viene invalidata quando dovrebbe: chi la possiede continua a entrare. Le guide OWASP per i test dedicano una sezione a questo (WSTG-SESS), perché è tanto comune quanto facile da verificare.

Il logout dovrebbe rendere inutile la prova di identità: in molte app non lo fa, e la prova resta valida.

I token JWT sono comodi ma nascondono una trappola: se non gestiti, restano validi fino a scadenza qualunque cosa succeda.

Il rischio si concretizza quando un token viene rubato o quando un utente va licenziato e la sua sessione resta aperta.

Si verifica in un minuto: si fa il logout e si prova a riusare la vecchia prova di identità.

Data Hub

CONSOO

Torna alle guide

La comodità che diventa trappola

I token in formato JWT sono diventati lo standard per gestire l'identità nelle applicazioni moderne, per un buon motivo: sono autosufficienti, il server non deve conservare nulla per verificarli. Ma è proprio questa la trappola. Un token autosufficiente è valido finché non scade, e il server, non conservando nulla, spesso non ha un modo semplice per dire «questo non vale più» prima della scadenza. Risultato: l'utente fa logout, ma il token che aveva continua a essere accettato fino al suo termine naturale, che a volte è lontano giorni o settimane.

I quattro punti da verificare

Cosa deve succedere, e cosa spesso succede
SituazioneComportamento correttoDifetto comune
L'utente fa logoutLa prova di identità non funziona piùContinua a funzionare fino a scadenza
Il token è vecchioScade dopo un tempo ragionevoleNon scade, o scade dopo settimane
L'utente cambia passwordLe sessioni aperte altrove decadonoRestano tutte valide
Un utente viene disattivatoI suoi accessi smettono subitoLa sessione aperta resta viva

Le ultime due righe sono quelle che mordono nella pratica: il dipendente che se ne va con una sessione ancora aperta, o l'account compromesso in cui cambiare la password non basta a buttare fuori chi era entrato.

La verifica, sul vostro sistema

  1. 01

    Accedete e catturate la prova di identità

    Con un account di prova, fate login e, dagli strumenti per sviluppatori del browser, individuate il token o il cookie di sessione che accompagna le richieste.

  2. 02

    Fate logout

    Premete «esci» normalmente, come farebbe un utente.

  3. 03

    Riprovate a usare la vecchia prova

    Rifate una richiesta autenticata riutilizzando il token o il cookie di prima. Se il server la accetta ancora, il logout non ha invalidato nulla: difetto confermato.

  4. 04

    Provate anche il cambio password

    Ripetete il test dopo aver cambiato la password da un altro dispositivo: le sessioni aperte altrove dovrebbero decadere. Se restano valide, è la stessa famiglia di problema.

Risorse collegate utili

Domande frequenti

Perché non basta far scadere i token in fretta?

Token a vita breve riducono molto il rischio ed è una buona pratica, ma da soli creano un problema di comodità: l'utente verrebbe disconnesso di continuo. Per questo si accompagnano a un meccanismo di rinnovo che si può revocare: il token d'accesso dura poco, ma il rinnovo può essere bloccato al logout o alla disattivazione. È la combinazione, non la sola scadenza breve, a chiudere il difetto.

Uso un servizio di autenticazione pronto: sono coperto?

In genere i servizi seri offrono gli strumenti giusti — scadenze, revoca, invalidazione al logout — ma vanno configurati e usati. Il difetto nasce spesso non nel servizio, ma nel modo in cui l'applicazione lo integra: per esempio ignorando la revoca. Vale la pena verificare il comportamento reale con la prova, non fidarsi del fatto che «usiamo un servizio buono».

Quanto è grave se lo trovo?

Dipende da cosa protegge la sessione e da quanto è facile che un token finisca nelle mani sbagliate. Su un'app con dati sensibili e dispositivi condivisi è serio; su un uso personale e con connessione sempre cifrata lo è meno. La gravità si misura con il metodo CVSS, come per gli altri difetti, non a sensazione.

Non siete sicuri che «esci» funzioni davvero nella vostra app? È una prova di un minuto e vale la pena farla. La verifichiamo insieme in una consulenza gratuita.

CONSOO trasforma idee su software, AI e integrazioni in un percorso tecnico chiaro per PMI.

  • 30 minuti, online
  • Nessun impegno
  • Analisi del tuo caso reale
  • Risposta entro 24 ore