IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Cookies] C'est quoi un vol de session ?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Par défaut [Cookies] C'est quoi un vol de session ?
    Bonjour,

    Je me prend la tête a essayer de réaliser un système de session et il s'avère que tout ce que je fais à ce sujet est bidon pour une raison qui m'apparait subitement éblouissante : Je ne sais pas ce qu'est un vol de session.


    Alors s'il vous plait, comment fait le hacker et surtout qu'est ce qu'il peut faire ?
    Est-il obligé de commettre son forfait pendant que le membre est connecté, ou son vol peut encore lui profiter ensuite ?

    Bref qu'est ce que vous pouvez me dire en gros, en détail et en approfondi sur ce sujet, s'il vous plait ?

  2. #2
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    Pour conserver une session d'une page à l'autre, il faut transmettre le numéro de session (SID)

    si un pirate arrive à récupérer le session_id, il peut prendre possession de la session, c'est à dire qu'il peut faire croire au serveur que c'est lui qui est le propriétaire de la session, de ce fait, le serveur réagira comme si c'était le client légitime qui se connectait au site.
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Par défaut
    Bon ça j'avais compris, merci Swoög.

    Maintenant le numéro de session ne sert à rien en soit, si ce n'est qu'il permet de s'accaparer les variables qui circulent dans la session correspondant à cet id, c'est ça ?

    J'ai bon sur ça déjà ?

    Si oui, une fois le membre déconnecté, le pirate n'a plus rien sous la dent, si ce n'est les éventuelles variables qu'il a récolté (mot de passe si on est c.., pseudo, ou identifiant etc...) , c'est ça ?

  4. #4
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    Citation Envoyé par psychoBob
    mot de passe si on est c...
    Bah, s'il est capable de sniffer un id de session, il peut aussi bien sniffer directement le login et le mot de passe (en cas de connexion non chiffrée).

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Par défaut
    Citation Envoyé par Eusebius
    Bah, s'il est capable de sniffer un id de session, il peut aussi bien sniffer directement le login et le mot de passe (en cas de connexion non chiffrée).
    Ah voilà qui s'approche d'une de mes interrogation:

    Contrairement à une session qui perdure dans le temps, la transmission du login et du pass se fait une seule fois et très vite. Donc comment fais le pirate, il guète ? Il aspire tout ce qui transite sur le site indistinctement ? Ou il cible un membre, ou une connexion précise ? Il sniffe quoi d'ailleur ? Ce qui circule entre le site et un pc ? Donc il récupère les informations d'une session que pour un membre c'est ça ?

  6. #6
    Membre émérite
    Avatar de Kioob
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Par défaut
    Dans le cas d'un sniffer chez un hébergeur par exemple, le pirate "pourrait" voir tout le trafic arrivant sur la machine. Dans ce cas des outils particuliers permettent d'isoler les flux HTTP, puis de filtrer sur ce qui nous interesse ici, c'est à dire un couple login/pass envoyé une seule fois en POST, ou bien un identifiant de session en cookie. Mais selon le contexte, rien ne dit qu'il aura accès longtemps au trafic circulant.


    Et comme tu le faisais remarqué plus haut, un login / pass ne va théoriquement circuler qu'une seule fois. Et est donc plus difficile à chopper.

    Par contre l'ID de session va circuler à chaque hit HTTP sur le site (donc y compris pour les images, la CSS, les scripts JS, etc). Il est généalement valable "au moins" 24 minutes, et sa suppression étant alléatoire, ça peut même durer bien plus longtemps : même après le "départ" de l'internaute s'il n'y a pas (ou s'il ne l'utilise pas) pas de fonction "se déconnecter" qui détruirait la session. Et si le visiteur reste 2 heure à consulter le site, cela laisse un large créneau au pirate.
    Le pire c'est que ceci est proportionnel à la durée de validité de la session : dans le cadre d'une "application intranet" il n'est pas rare de voir des sessions de 2 heures par exemple (pas forcément justifié d'ailleurs).


    D'où l'intérêt d'un mécanisme pour se protéger de ça : essayer de limiter la durée de validité d'un même ID de session. Ainsi si on vérifie via PHP la durée de la session, on s'assure que cela ne s'éternisera pas au delà du temps souhaité (les fameuses 24 minutes de départ).
    De plus, si à chaque nouvelle page, on change l'ID de session (ou un équivalent), le délai de validité de cet identifiant peut être réduit à quelques minutes, voir quelques secondes : cela améliore les choses, mais ne résoud pas non plus le problème. Il y aura toujours un petit créneau pendant lequel le vol sera possible.


    Reste le risque dans le cas où l'internaute part sans détruire la session : celle ci est donc valide durant 24 minutes par exemple. Mais l'avantage c'est que l'ID de session n'apparait plus dans le trafic. Donc à moins d'avoir choppé le bon paquet au bon moment, le risque n'est pas énorme.


    Bien sûr tout ceci est valable dans le cas d'un identifiant de session en cookie. S'il est dans l'URL, c'est bien pire, car on va aussi le retrouver dans le REFERER de tous les liens externes...

  7. #7
    Fabouney
    Invité(e)
    Par défaut
    Tu peux rajouter des éléments dans la session qui permetterons de vérifier si l'utilisateur utilisant celle-ci est bien la bonne personne.
    du genre tu enregistre l'adresse Ip et la version du navigateur du visiteur, et tu fait une fonction qui permet de tester si l'ip du visiteur et la version de son navigateur est egale aux données enregistrer dans la session, si non, dans ce cas c'est pas l'utilisateur attendu.

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Par défaut
    Citation Envoyé par Fabouney
    Tu peux rajouter des éléments dans la session qui permetterons de vérifier si l'utilisateur utilisant celle-ci est bien la bonne personne.
    du genre tu enregistre l'adresse Ip et la version du navigateur du visiteur, et tu fait une fonction qui permet de tester si l'ip du visiteur et la version de son navigateur est egale aux données enregistrer dans la session, si non, dans ce cas c'est pas l'utilisateur attendu.
    Oui mais ça j'ai ouvert des posts sur le sujet et la plupart on dit que c'était bidon, car vu que les IP change pour beaucoup de monde en cours de connexion (utilisateurs d'aol, proxy etc...) et vu que les informations du navigateurs ne sont pas fiables pour je ne sais plus quelle raison et bien en bout de course c'est hyper contraignant et ça gène tellement d'utilisateurque ça devient nul.

    De toute façon c'est pas un post sur comment se protéger du vol de session, j'ai résolu le problème : c'est HTTPS le reste c'est du flan.
    Mais je veux quand même comprendre en détail, si possible, ce qu'est un vol de session.

  9. #9
    Fabouney
    Invité(e)
    Par défaut
    Bah c'est tout simple, à partir du moment ou des informations sont véhiculées sur le reseaux, du genre une session id qui dialogue entre serveur et client, est passible d'être intercepté par un individu, en effet le SSL est une solutions à beaucoup de problèmes de ce genre lol.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.2] Sessions "cookie-based" et vol de session "hijacking"
    Par Doonge dans le forum Langage
    Réponses: 18
    Dernier message: 02/09/2011, 15h44
  2. [Cookies] Test de vol de session
    Par freesurfer dans le forum Langage
    Réponses: 12
    Dernier message: 20/10/2006, 13h55
  3. c'est quoi les cookies?
    Par makaphrodite dans le forum Dépannage et Assistance
    Réponses: 7
    Dernier message: 09/09/2006, 15h10
  4. [Cookies] Login membre, protection vol de session
    Par july dans le forum Langage
    Réponses: 18
    Dernier message: 06/06/2006, 11h02
  5. C'est quoi exactement un générateur d'états
    Par Henry Cesbron Lavau dans le forum Outils de restitution et d'analyse
    Réponses: 0
    Dernier message: 02/04/2002, 19h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo