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 :

Réouverture automatique d'une session via un cookie


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 43
    Points : 34
    Points
    34
    Par défaut Réouverture automatique d'une session via un cookie
    Bonsoir,

    Bon je commence simplement à apprendre le PHP (donc je connais pas grand chose) et je suis en train de me faire un site où le visiteur ce log et après plusieurs jours d'absence le site le relog à nouveau pour pas qu'il est besoin de le faire à nouveau.

    Après quelque recherche je pense faire comme suite :

    - toto se log.
    - création d'id session.
    - création d'un cookie envoyé sur la machine de toto avec l'id de session.
    - enregistrement de l'id session dans une base de donnée.
    - toto se déco donc session du navigateur fini.
    - toto se reconnecte après 1 semaine
    - recherche d'un cookie d'id session sur ma machine de toto
    - si trouvé, recherche de l'id cookie de la machine de toto dans la base de donnée
    -si trouvé, log toto avec les infos qui corresponde à l'id toto dans la base de donnée.
    - régénération de l'id session et l'id session du cookie toto.

    Le problème est que je trouve pas cette solution très sûr.

    En effet il suffit qu'une personne se log sur mon site, il aura donc un cookie session. Récupère le cookie session de toto, copie le contenu du cookie de toto dans son cookie à lui et tadam il pourra se connecter au compte de toto pendant son absence sans avoir besoin de mot de passe ou login ..........

    Donc ma question (oui enfin) comment peut ton faire ce que je souhaite mais de manière plus sécurisé ?

    Merci

    Bonne soirée

    Nuphius

  2. #2
    Inactif
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 37
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par nuphius Voir le message
    Bonsoir,
    - toto se log.
    - création d'id session.
    - création d'un cookie envoyé sur la machine de toto avec l'id de session.
    - enregistrement de l'id session dans une base de donnée.
    - toto se déco donc session du navigateur fini.
    - toto se reconnecte après 1 semaine
    Bonsoir ton histoire s'arréte la ...

    Le cookie de session ne se garde pas sur le micro de toto, et il n'en est pas maître ... toto ne peux garder que les cookies de données !

    Deuxiéme anomalie tu mets l'ID de session de toto dans mysql je supposes a son nom, erreur encore puisque le serveur vide les données de toute session n' ayant pas d'activitée depuis environ 15 minutes

    Donc je te résumes toto n' a plus son ID de session, et le serveur a bien son ID de session, mais qui ne corespond plus a une session active !

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 43
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par carla-la-belle Voir le message
    Bonsoir ton histoire s'arréte la ...

    Le cookie de session ne se garde pas sur le micro de toto, et il n'en est pas maître ... toto ne peux garder que les cookies de données !

    Deuxiéme anomalie tu mets l'ID de session de toto dans mysql je supposes a son nom, erreur encore puisque le serveur vide les données de toute session n' ayant pas d'activitée depuis environ 15 minutes

    Donc je te résumes toto n' a plus son ID de session, et le serveur a bien son ID de session, mais qui ne corespond plus a une session active !

    J'ai mal dû m'exprimer.

    J'envoi à toto une copie de l'id session via un cookie de donnée et je stocke ce même id dans la base de donnée.

  4. #4
    Inactif
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 37
    Points : 44
    Points
    44
    Par défaut
    Oui
    J'envoi à toto une copie de l'id session via un cookies de donnée et je stocke ce même id dans la base de donnée.
    mais tu relis ce que j'ais dis, ta base de donnée a une valeur
    a45874fd56f5f56de47e2f5f4f4g5g5
    dans ton cookies il y a la même, mais il n'y a plus de session avec cette clé.

    Je penses qu'il faudrait que tu regardes cette bible
    http://cyberzoide.developpez.com/php4/faqsession/

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 43
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par carla-la-belle Voir le message
    Oui

    mais tu relis ce que j'ais dis, ta base de donnée a une valeur
    a45874fd56f5f56de47e2f5f4f4g5g5
    dans ton cookies il y a la même, mais il n'y a plus de session avec cette clé.

    Je penses qu'il faudrait que tu regardes cette bible
    http://cyberzoide.developpez.com/php4/faqsession/
    je sais bien qu'il n'y aura plus de session avec cette clé.

    Je veux si le clé correspond à la clé dans la BDD le site le log automatiquement. je ne veux pas récupérer une session perdu.

    Je cherche un moyen sûr d'identifier une personne qui c'est déjà log dans le passé pour le reloguer automatiquement.

    exemple : quand tu te log tu coche la case "se souvenir de moi"

  6. #6
    Inactif
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 37
    Points : 44
    Points
    44
    Par défaut
    Ok je comprends,
    cela me parait tordu, car a sa prochaine visite tu saura que c'est celui qui avait a45874fd56f5f56de47e2f5f4f4g5g5
    mais il va de fait avoir un nouvel ID de session donc il te faut remettre a jour
    base de donnée et cookies !

    Pourquoi ne pas mettre dans la base et dans le cookies
    nom_sxdfget une fois pour toute ? sachant que sxdfget tu le génére a sa premiére visite par un randomise

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 43
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par carla-la-belle Voir le message
    Ok je comprends,
    cela me parait tordu, car a sa prochaine visite tu saura que c'est celui qui avait a45874fd56f5f56de47e2f5f4f4g5g5
    mais il va de fait avoir un nouvel ID de session donc il te faut remettre a jour
    base de donnée et cookies !

    Pourquoi ne pas mettre dans la base et dans le cookies
    nom_sxdfget une fois pour toute ? sachant que sxdfget tu le génére a sa premiére visite par un randomise
    Car je veux pas d'info qui s'affiche en claire pour des question de sécurité.

    je viens d'avoir une idée. Est-il possible de récupérer la période d'expiration d'un cookie ?

  8. #8
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut
    Citation Envoyé par carla-la-belle Voir le message
    Deuxiéme anomalie tu mets l'ID de session de toto dans mysql je supposes a son nom, erreur encore puisque le serveur vide les données de toute session n' ayant pas d'activitée depuis environ 15 minutes
    Bonsoir
    Hop hop ! pas d'accord !

    Dans ce cas de figure, on fonctionne mysql.

    Le fait de sauvegarder sur mysql une session avec toutes les variables utiles est justement pour palier au fait, qu'en cas de déconnection, la session est détruite.
    Mais si la session est détruite, l'id de session enregistré dans mysql reste associé aux anciennes variables pertinentes, encore faut-il prendre grand soin dans l'élaboration de la table.
    Autrement dit, enregistrer cet id de session et/avec toutes les dernières variables utiles .

    =>> En fait, on va utiliser l'id de session détruit comme référence, pour retrouver toutes les variables qui lui étaient associées au moment de la dernière identification.

    On aurait pu utiliser une autre méthode, tel qu'un id, mais peu importe, mais pourquoi créer un nouveau champ et compliquer les choses puisqu'on a déjà un id (session) aléatoire sous la main et au demeurant pertinent, comme on peut le voir ci-dessous .

    Je vais prendre pour shema, une applic que j'ai crée l'an passé, et avec un systéme d'identication + session.

    1 - L'utilisateur s'identifie
    ......SQL vérifie dans la table "user" si le login et le password est ok.


    Si ok
    2a - On crée un nouvel identifiant de session (session-id)

    Deuxiéme requête :

    .....SQL vérifie dans la table "session" si le login existe.
    Si existant, on update le nouvel id de session pour écraser l'ancien et on récupére ses différentes variables dans les mêmes conditions qu'une création initiale de session.

    Si login inexistant dans la table session

    2b - On crée un nouvel identifiant de session (session-id)

    On lance un session classique, on l'enregistre sur mysql, avant d'orienter l'utilisateur vers le/les contenus autorisés.

    Au fur et à mesure des actions ou visites de l'utilisateur, il suffit d'updater vers la table session toutes les informations utiles, dans les champs crées, avec comme id, l'id de session.
    ( Celà prend une ligne de code à chaque fois.)
    Et ce n'est ensuite, qu'une organisation dans la conception des scripts.
    Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
    C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 43
    Points : 34
    Points
    34
    Par défaut
    Oui c'est ce que je cherche à faire mais mon problème n'est pas là.

    Ce que je cherche a faire c'est loguer les gens automatiquement. Qu'il ne soient pas obligés de rentrer leurs mot de passe et leurs login à chaque visites.

    Pour cela, lors de leurs première identification manuel sur le site je veux stocker un chiffre aléatoire (donc leur id de session) dans ma BDD aussi quand dans un cookie de donnée que je leurs envoi.

    Ainsi lors de leurs visites suivante le site cherche le cookie, récupère le numéro et log automatiquement (en leur ouvrant une nouvelle session) via les infos de la personne stocker dans ma BDD en correspondance avec le numéro de cookie.

    Si je recontre pas de bêtise le forum phpBB utilise cette technique.

    Mon problème est, si une personne récupère le cookie avec le numéro sur l'ordinateur de sa victime, il lui suffit de remplacer son numéro qu'il a dans son cookie par celui de sa victime et il pourra ce connecter sans problème au compte de sa victime.

    J'ai fait le teste sur mon forum phpBB et ce genre de hack marche...... Donc gros problème de sécu.

    Je cherche un solution pour combler ce trou de sécu. J'ai donc pensé hier à stocker dans ma BDD en plus du numéro la date de validité du cookie(comme sa je compare le numéro et la date de validité par rapport au cookie).

    Mais est-il possible de récupère la date de validité d'un cookie déjà existant ?

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/11/2012, 22h36
  2. Refresh automatique d'une session AS400
    Par Anavai dans le forum AS/400
    Réponses: 2
    Dernier message: 23/09/2011, 14h50
  3. [AppleScript] démarrage automatique d'une application via un script AppleScript
    Par paissad dans le forum AppleScript
    Réponses: 2
    Dernier message: 05/04/2011, 10h49
  4. fermeture automatique d'une session
    Par hammag dans le forum Langage
    Réponses: 7
    Dernier message: 16/06/2009, 17h24
  5. Réponses: 4
    Dernier message: 09/03/2007, 19h19

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