Lavoro con siti sensibili che gestiscono informazioni finanziarie, il mio codice protegge oltre quattro miliardi di sterline di risorse.
Tutti i nostri siti hanno un pulsante di disconnessione e inoltre utilizzano i cookie HttpOnly, Secure, Session per mantenere la sessione di un utente. Sebbene ci aspettiamo che gli utenti facciano clic sul pulsante "Esci", anticipiamo anche che alcuni utenti non lo faranno; di conseguenza, ci affidiamo ai cookie di sessione da eliminare quando l'utente chiude il browser.
Recentemente ho notato che i browser non rilasciano mai i cookie di sessione quando vengono chiusi. Chrome, in particolare, ha una funzione "Riprendi da dove ho lasciato" che persiste i cookie di sessione dopo che il browser è stato chiuso, e per di più questa opzione è selezionata per impostazione predefinita. FireFox ha una funzione simile.
Quali ulteriori attenuazioni hai implementato a causa di questa funzione? Ne abbiamo presi in considerazione alcuni:
-
OnBeforeUnload / Unload / PageHide il gestore per rilasciare i cookie quando la finestra viene chiusa. Purtroppo non puoi rilasciare i cookie HttpOnly in questo modo.
-
Cookie di sessione molto brevi che vengono continuamente aggiornati (ogni 30 secondi circa) tramite script. Questo problema è dovuto al fatto che alcuni browser (in particolare su telefoni e tablet) interrompono l'esecuzione di Javascript quando una scheda è inattiva, quindi questo avrebbe l'effetto di far cadere gli utenti quando alterano la scheda o cambiano le finestre.
-
Gestori AJAX per mantenere un battito cardiaco con il server. Ancora, questo non funzionerà quando la scheda è inattiva.
Sono necessarie ulteriori misure di attenuazione? O è il compratore a stare attento se non si fa esplicitamente il logout? Curioso di ciò che altri professionisti IT hanno fatto al riguardo.
Nota: utilizziamo anche un cookie persistente con una finestra scorrevole di dieci minuti e scadiamo la sessione sul lato server in dieci minuti. Il punto di questo esercizio è di attenuare l'attività dannosa che si verifica all'interno della finestra di 10 minuti, ad es. se qualcuno ti sta osservando attentamente in un internet cafè e prende il controllo della tua workstation se non esegui correttamente il logout.