Cookie di sessione stateless e logout

3

Ho implementato un cookie di sessione stateless, qualcosa sulla falsariga di questo articolo:

Demistificazione dell'autenticazione Web (cookie di sessione stateless)

Il cookie contiene un tempo di scadenza all'interno del valore hash e anche il cookie viene impostato con un timeout di sessione nel browser. Quando l'utente si disconnette, il cookie viene eliminato. Tuttavia, qualcuno ha notato che un utente malintenzionato può rubare il cookie e essenzialmente utilizzarlo entro la scadenza specificata nel cookie anche se l'utente ha effettuato il logout. Esiste una soluzione a questo problema (oltre ad abbandonare i cookie di sessione stateless e utilizzare la gestione standard delle sessioni server / framework)?

    
posta V1400 27.10.2014 - 21:19
fonte

2 risposte

4

L'intero punto di avere una cosa "senza stato" è di evitare di mantenere stato (qui, dal lato server). I server stateless sono inevitabilmente soggetti agli attacchi di replay , per definizione. Il problema che stai immaginando è fondamentalmente un attacco di replay.

Se gli attaccanti possono rubare i cookie dei clienti, allora hai già problemi più grandi. Se non possono, allora non ci sono problemi. Usa SSL.

(SSL non è la soluzione definitiva per tutto, ma aiuta a evitare il furto dei cookie, almeno finché il cookie è contrassegnato come sicuro e solo HTTP . )

    
risposta data 27.10.2014 - 21:27
fonte
2

No, non c'è davvero. Per svolgere questo lavoro, è necessario disporre di una forma di gestione delle sessioni in atto per determinare se il token in un cookie è valido o meno. Possono significare mantenere un elenco di sessioni valide come nella gestione tradizionale delle sessioni o in token esplicitamente nella blacklist scaduti per un certo periodo di tempo. (Meno sovraccarico sull'applicazione, ma molto più difficile da eseguire correttamente.)

In definitiva, si tratta di una minaccia a rischio generalmente basso, a mio parere, in genere non vale la pena mitigare. È completamente in contrasto con il modello di richiesta-risposta del web, e puoi proteggerci dal furto di token adeguatamente bene semplicemente usando TLS e HTTPS.

    
risposta data 27.10.2014 - 21:26
fonte

Leggi altre domande sui tag