Is passing the session id as url parameter really insecure?
Sebbene non sia intrinsecamente non sicuro, può essere un problema a meno che il codice non sia molto ben progettato.
Diciamo che visito il mio forum preferito. Mi registra 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 adottato misure per garantire che ci sia qualche forma di convalida sull'ID di sessione, l'amico che ha cliccato su quel link potrebbe ereditare la mia sessione, e quindi essere in grado di fare qualsiasi cosa io possa fare, come me.
Memorizzando gli identificativi di sessione nei cookie, elimini completamente il problema di condivisione dei link.
C'è una variazione su questo tema chiamato la correzione della sessione , che implica una condivisione intenzionale di un identificatore di sessione per scopi dannosi. L'articolo di Wikipedia collegato approfondisce il modo in cui funziona questo attacco e in che modo si differenzia dalla condivisione non intenzionale dell'identificatore di sessione.
Why are cookies more secure?
I cookie possono essere più sicuri qui, perché non sono qualcosa che i normali utenti possono copiare & incollare, o anche visualizzare e modificare. Sono un predefinito molto più sicuro.
What possibilities does an attacker have for both options?
Né di questi metodi sono al sicuro da attacchi man-in-the-middle su comunicazioni non criptate. Componenti aggiuntivi del browser, spyware e altri fastidi sul lato client possono anche spiare entrambi i metodi di memorizzazione degli identificativi di sessione.
In entrambi i casi, convalida sul lato server che il client che dichiara di possedere un ID di sessione è la procedura migliore. Di che cosa è composta questa convalida è in discussione. Tieni presente che gli utenti dietro i proxy aziendali possono saltare tra gli indirizzi IP tra le richieste, pertanto il blocco di una sessione a un indirizzo IP potrebbe accidentalmente allontanare le persone. L'articolo correzione della sessione menziona alcune altre alternative utili.