Il passaggio dell'id di sessione come parametro url è davvero insicuro?
Sebbene non sia intrinsecamente insicuro, può essere un problema a meno che il codice non sia molto ben progettato.
Diciamo che visito il mio forum preferito. Mi accede e aggiunge il mio ID di sessione all'URL in ogni richiesta. Trovo un argomento particolarmente interessante e copia & incolla l'URL in un messaggio istantaneo al mio amico.
A meno che l'applicazione non abbia provveduto a garantire che ci sia qualche forma di convalida su l'ID di sessione, l'amico che ha fatto clic su quel collegamento potrebbe ereditare la mia sessione e quindi sarebbe in grado di fare tutto ciò che posso fare, come me.
Memorizzando gli identificatori di sessione nei cookie , elimini completamente il problema della condivisione dei link.
Esiste una variazione su questo tema chiamata fissazione della sessione, che implica la condivisione intenzionale di un identificatore di sessione per scopi dannosi. L'articolo di Wikipedia collegato approfondisce come funziona questo attacco e come si differenzia dalla condivisione involontaria dell'identificatore di sessione.
Perché i cookie sono più sicuri?
I cookie possono essere più sicuri qui, perché non sono qualcosa che gli utenti normali possono copiare &, incollare, o anche visualizzare e modificare. Sono un valore predefinito molto più sicuro.
Quali possibilità ha un aggressore per entrambe le opzioni?
Nessuno di questi metodi è protetto da attacchi man-in-the-middle su comunicazioni non crittografate. I componenti aggiuntivi del browser, lo spyware e altri dispositivi nocivi lato client possono anche spiare entrambi i metodi di memorizzazione degli identificatori di sessione.
In entrambi i casi, la migliore pratica è la convalida lato server del client che dichiara di possedere un ID sessione. Di cosa si compone questa convalida è in discussione. Tieni presente che gli utenti dietro proxy aziendali possono saltare da un indirizzo IP all'altro tra le richieste, quindi bloccare una sessione a un indirizzo IP potrebbe allontanare accidentalmente le persone. L'articolo sulla correzione della sessione menziona alcune altre utili alternative.