Originariamente inviato da geko
La debolezza di PHP è il fatto di accettare che io richieda una pagina in questo modo:
http://www.mioserver.com/pagina.php?PHP_SESSION=123456
(non mi ricordo se è PHP_SESSION o SESSION_ID o simile..) e da questo momento impostare l'id di sessione a '123456'. In pratica l'id di sessione non è una proprietà READONLY!!!!
Con ASP su IIS ad esempio ciò non è possibile.
Con l'id nell'url l'id di sessione non viene impostato da te, se esiste e lo indovini puoi infiltrarti nella sessione altrui..... altrimenti no.
Per poterlo "rubare" deve esserti inviato via link o devi poterlo vedere essendo fisicamente presente davanti al terminale.
Oppure devi sinnfare il traffico di rete,ma questo è possibile anche con l'id nei cookie.
Ad ogni modo l'id nell'url è una comodità che PHP ti dà in più, nel caso tu ti debba servire delle sessioni per usi diversi da un'area riservata.
Comunque anche se l'utente passa l'id nell'url puoi sempre far sì che il sistema delle sessioni lo ignori, mettendo session.use_only_cookies = 1 nel php.ini .

In ASP il problema non c'è perchè ASP (salvo plugin di IIS poco usati) utilizza soltanto i cookie

Onestamente non so se la debolezza sia di Apache o di PHP, cmq non è una questione di HTTP, il fatto che i dati viaggino in chiaro è palese...
Il problema che sottolineavo è il seguente:
io conosco il tuo id di sessione --> io sono te
La "debolezza" è di HTTP, perchè senza SSL anche le sessioni ASP (o di qualunque linguaggio server side) sono sniffabili, infatti anche i cookie sono visibili nel traffico di rete



P.s.
grazie Gianni per la fiducia (ovviamente eccessiva) :-)