Rinnovamento della sessione quanto spesso è necessario?

4

Ricerco di nuovo la gestione delle sessioni di un sito e al momento si rinnova l'ID della sessione client su ogni aggiornamento della pagina. L'idea è che se viene rubato direttamente dal browser ci sono meno possibilità che la sessione venga dirottata.

Questo però non sembra avere senso. Se è possibile che un qualche tipo di malware o vulnerabilità del browser produca un id di sessione per un hacker, allora dovrebbero essere abbastanza facilmente in grado di dirottare quella sessione indipendentemente dalla nuova sessione che viene creata ogni volta, come se fosse "arrivare prima" .

Da quello che posso dire non c'è semplicemente alcun modo per risolvere questo tipo di problema concentrandosi sul token di sessione stesso, ma piuttosto sulla corrispondenza con altre informazioni del profilo degli utenti è più affidabile. E, naturalmente, chiedendo la password per i cambiamenti critici.

Quindi c'è un qualsiasi punto nel creare un nuovo token di sessione per ogni caricamento di pagina, sembra un po 'inutile e uno spreco di risorse. In effetti, se si creano così tanti ID, ci sarebbe una maggiore probabilità di indovinare una sessione in modo casuale.

La modifica del token di sessione non dovrebbe essere accettabile durante una sessione o dovrebbe essere rinnovata ogni due minuti?

    
posta Kline 21.03.2017 - 20:36
fonte

1 risposta

1

Hai ragione a non offrire più sicurezza.

Tranne i problemi di usabilità e l'aumento della complessità, non sono sicuro di cosa porti. Ad esempio, se modifichi session_id e invalidi il sessionid precedente su ogni richiesta, il tuo utente non sarà in grado di utilizzare molte schede nel suo browser.

Inoltre, come hai affermato, non impedisce a un utente malintenzionato di entrare prima e utilizzare session_id prima di quello reale.

È accettabile non cambiare session_id?

Sì, mentre l'utente ha effettuato l'accesso non c'è motivo di cambiarlo.

Quindi, per quanto tempo dovrebbe rimanere l'utente loggato?

Dipende sempre dalla sicurezza richiesta dall'applicazione. Ad esempio, StackOverflow non resetta la mia sessione se non effettuo l'accesso per una settimana. Non lo ripristina anche se chiudo il browser. Al contrario, il mio sito web della banca chiuderà la mia sessione se sono inattivo per circa 10 minuti o se chiudo la scheda del browser.

Lasciare una sessione aperta aumenta il rischio che possa essere rubato. Se è fondamentale mantenere la sessione al sicuro, cambiala spesso. L'idea qui è definire regole su quando è necessario modificarlo e bilanciare sicurezza e usabilità.

Nota : la sicurezza session_id è molto simile al token CSRF. Ecco una domanda simile: Perché aggiornare il token CSRF per richiesta di modulo?

    
risposta data 21.03.2017 - 21:41
fonte

Leggi altre domande sui tag