Sì, se riesci a indovinare la chiave di sessione di un altro utente, puoi diventarli. Questo è il motivo per cui è necessario disporre di una chiave di sessione imprevedibile che può essere revocata.
Ci sono stati casi in cui le migliori pratiche non sono state seguite, ad esempio Moonpig ha prodotto un'API che utilizzava una chiave di sessione che era l'ID dell'utente che viene impostata sulla creazione dell'account come numero consecutivo. Questo significa che potresti essere qualsiasi utente. Se quell'utente volesse fermarti, non potrebbe, poiché è la chiave per tutte le sessioni in cui sono impegnati e non può essere modificato poiché è l'ID univoco per loro all'interno del database di Moonpig.
Questo è un ottimo esempio di come farlo male. Le chiavi di sessione dovrebbero essere imprevedibili e in grado di essere gettate via (probabilmente un utente può avere molte chiavi di sessione).
Come @Mindwin menzionato nei commenti, la chiave di sessione dovrebbe essere nel payload HTTP (cookie o dati del modulo [best practice è nei cookie]) e non nell'URL. Questo perché avere i dati di sessione nell'URL lo rende così devi metterlo nell'URL di ogni link, ti impedisce di perseguire una sessione se l'utente esce e ritorna, copiando l'URL e inviandolo a qualcuno dà loro la tua sessione dati e c'è un limite di caratteri che può essere un URL.
Dovresti inoltre utilizzare HTTPS laddove possibile, in modo che un utente malintenzionato non possa eseguire lo snoop sul payload HTTP e ottenere una copia della chiave di sessione in questo modo (questo è il modo in cui ha funzionato Firesheep).