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] Login membre, protection vol de session


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Avatar de july
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 88
    Par défaut [Cookies] Login membre, protection vol de session
    Bonjour,
    Me revoila !! lol

    En fait, j'ai un dernier problème tout bete : j'ai mis en place (enfin du moins j'espère !) une protection contre le vol de session (avec la méthode décrite par Kioob) et j'aimerai faire des tests mais je ne sais pas comment faire !

    J'ai essayé d'aller dans le cookie sur ma machine changer la valeur du n° que j'ai généré mais ca ne fait rien... Alors erreur de code ou erreur de test ?

    Je vous mets mon code :

    Lorsque l'utilisateur se connecte je crée le premier cookie.
    Ensuite, on teste lorsque l'utilisateur est connecté et qu'il change de page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    if($connecte){
     // On compare l'id du cookie avec l'id de la session
       if($_COOKIE['id_aleatoire'] != $_SESSION['id_aleatoire']){
     
        // Si les deux valeurs sont différentes, on renvoie vers l'accueil et on détruit la session
        login_out();
        header('location: index.php?rub_id=1&ss_rub_id=1');
     
       } else {
           // On génère une nouvelle valeur de cookie et dans la variable session
           generate_cookie();
       }
    }
    Je vous mets également la fonction qui génère le cookie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
       // On définit la durée du cookie tjs en secondes
       // Ce cookie expirera dans un jour, puisque l'on ajoute la date du jour et 24*3600
       $expire = time()+24*3600;
     
       // On crée un nb aléatoire que l'on stocke en session et dans le cookie
       $nb_aletoire = rand();
     
       // On le stocke en session
       $_SESSION['id_aleatoire'] = $nb_aletoire;
     
       // On envoi le nom du paramètre à stocker, la valeur du paramètre et la date d'expiration du cookie
       // On transmet un numéro aléatoire qui permet de vérifier que l'utilisateur est valide
       setcookie("id_aleatoire",$nb_aletoire,$expire);
    J'ai pense faire un autre test c'est à dire en stockant dans la bdd le n° aléatoire. Mais je ne saurai pas si ca marche pour un cookie..

    Merci encore par avance

  2. #2
    Membre confirmé
    Avatar de july
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 88
    Par défaut
    Bon alors j'ai fait le test avec une base de données et.. ca fonctionne !

    Le problème étant que j'aimerai mieu utiliser un cookie car je pense que ca serait plus sécurisé (une bdd ca se vole, un cookie pas à ma connaissance).

    Je vous explique le test que j'ai effectué :
    - je me suis connectée, dans la bdd un n° aléatoire à donc été enregistré
    - je suis allée dans ma base et j'ai changé ce n°
    - je suis retournée sous FireFox et j'ai changé de page
    - ma session a été détruite puisque le n° enregistré dans ma session n'était pas celui de la bdd !
    PARFAIT !

    Voici le code :
    La vérification est la même à part que je ne fais plus $_COOKIE['id_aleatoire'] mais je vais dans la bdd chercher cette valeur.
    Par contre la fonction generate_cookie à changée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function generate_cookie($db){
     
       // On crée un nb aléatoire que l'on stocke en session et dans le cookie
       $nb_aletoire = rand();
     
       // On le stocke en session
       $_SESSION['id_aleatoire'] = $nb_aletoire;
     
     
       $result = $db->execRequest("INSERT INTO session (id_user,date,nb_aleatoire) VALUES ('".$_SESSION['id_user']."','".date('Y-m-d H:i:s')."','".$nb_aletoire."')");
     
    }
    Quelqu'un connait alors le pb avec les cookies ?
    Merci encore

  3. #3
    Membre confirmé
    Avatar de july
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 88
    Par défaut
    Personne ne sait ???

    Comment faites vous alors pour lutter contre le vol se session ?

    Merci encore

  4. #4
    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
    Bah moi je fais plus rien, j'ai viré tous les scripts dans le genre et je passe en https (ssl ?) dès que j'ai deux semaines de libre (ça va pas être coton, j'ignore tout du problème).

  5. #5
    Rédacteur

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 695
    Par défaut
    Salut

    http://www.developpez.net/forums/sho...=144573&page=2

    lis la page 2 et 3 (voire tout)

    Tu apprendras que ce que tu as fait (sans le $_COOKIE je parle) ne sert à rien.
    Fais marcher ton cookie, ou fait rien.

    A+
    Articles sur developpez.com
    - Gestion des exceptions avec PHP5
    - Chiffrement et hash en PHP contre l'attaque Man in the middle
    - Aedituus - Espace membre sécurisé en PHP5

  6. #6
    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
    Salut Wanania,

    Juste en deux mots : comme j'ai décidé de passer l'espace membre de mon site en ssl, comment je dois faire ? Je sais que l'option est dispo chez ovh.

    Je demande pas des informations complètes, mais c'est tout noir et je voudrais juste quelques pistes pour commencer à m'orienter sur le pourquoi du comment afin de gagner du temps le moment venu. C'est difficile ou quoi ? ça peut prendre combien de temps ? ça implique des changements d'url ou choses comme ça... ?

+ 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, 16h44
  2. [Cookies] Test de vol de session
    Par freesurfer dans le forum Langage
    Réponses: 12
    Dernier message: 20/10/2006, 14h55
  3. [Cookies] C'est quoi un vol de session ?
    Par psychoBob dans le forum Langage
    Réponses: 45
    Dernier message: 28/05/2006, 23h11
  4. [Cookies] problème cookie login automatique
    Par t-die dans le forum Langage
    Réponses: 1
    Dernier message: 26/01/2006, 17h48
  5. [Cookies] Chaque page démarre une nouvelle session
    Par Invité dans le forum Langage
    Réponses: 3
    Dernier message: 21/01/2006, 22h17

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