Prima di tutto, non sono sicuro di seguire completamente questa affermazione:
My concern is that with people more and more relying on their browsers remembering their credentials and having sessions that never expire, or expire after a long period of time, this means that somebody might be able to just copy your token and bypass authentication altogether...
Il browser che ricorda le credenziali è completamente indipendente dalle sessioni del sito web che durano a lungo. In effetti, avere il tuo browser ricorda le tue credenziali è una comodità in modo che non devi fare clic sull'opzione "ricordami" su un sito Web, quindi si potrebbe sostenere che consentire ai browser di memorizzare le credenziali ti rende più probabile che tu faccia il logout e faccia la tua sessione più breve piuttosto che più lunga. Detto questo, capisco dove ti stai dirigendo con la domanda, quindi supponiamo che tu non stia memorizzando le credenziali nel browser, e invece clicchi sull'opzione "ricordami" per avere una sessione che dura a lungo tempo (forse mesi). Quanto è insicura l'opzione "ricordami"?
L'opzione ricordami non è sicura in nessuno dei seguenti scenari:
- Sei su un computer condiviso in cui qualcun altro ha accesso a
lo stesso utente che usi o qualcun altro ha accesso amministrativo al computer
usate. In questo caso un altro utente del computer può guardare il tuo
cookie di autenticazione e copia il tuo token come suggerito.
- Il sito utilizza http invece di https. In questo caso, qualcuno che annusa la rete può acquisire il token di sessione in transito.
Alcune cose che puoi fare per prevenire lo snatch dei token sono:
- Utilizza https.
- Utilizza un token di autenticazione di breve durata in combinazione con un token di aggiornamento di lunga durata .
Se implementato correttamente, il token di aggiornamento realizza un paio di cose. Poiché l'aggiornamento viene passato periodicamente anziché con ogni richiesta, è meno probabile che venga compromesso in primo luogo. Quando si verifica l'aggiornamento, tutti i token di autenticazione esistenti creati con quel token di aggiornamento sono automaticamente scaduti, quindi se l'aggiornamento viene mai compromesso e due utenti cercano di utilizzarlo contemporaneamente, si verificherà un conflitto continuo sul token di autenticazione e più aggiornamenti accadrebbe prima della scadenza. Il server potrebbe facilmente rilevarlo e scadere anche il token di aggiornamento. Quindi l'utente dovrebbe effettuare nuovamente il login e solo l'utente reale sarebbe in grado di farlo. Maggiori informazioni a riguardo possono essere trovate qui .