De base, l'ID de session est transmis uniquement entre le visiteur et le site web. Il y a vol d'ID de session lorsque quelqu'un réussit à récupérer l'ID de session de quelqu'un d'autre.
Le vol d'ID de session est possible dans deux cas:
- faille de cross-site scripting qui permet de récupérer le cookie du site. Par exemple, si tu as par mégarde laissé la possibilité à l'utilisateur de mettre du javascript dans ses messages (commentaires, posts de forum), il est possible de récupérer le cookie de l'utilisateur sur un serveur distant.
- si l'ID de session est dans l'URL du site, faire cliquer l'utilisateur sur un lien extérieur au site peut lui faire révéler son ID de session à cause du Referrer dans l'en-tête de la requête.
Pour éviter le vol d'ID de session, deux choses à mettre en place:
- blinder son site contre les failles de type XSS
- préférer les sessions par cookies plutôt que par URL
Pour éviter que les ID de session volés soient exploitables:
- changer l'ID de session régulièrement (au login par exemple) avec session_regenerate_id()
- vérifier l'IP associée à la session, et invalider la session si l'IP ne correspond pas
---------------
Loose Change Lies | Bars | Last.fm