php + 'sessions perso'

Discussion dans 'Web, design' créé par BaKa, 5 Juin 2003.

Statut de la discussion:
Fermée.
  1. Offline
    BaKa Touriste
    Yep all,

    j'aimerais me faire un systeme moi meme pour gérer les sessions ... j'ai pensé a un truc mais je ne sais pas si c bon ...

    quand l'utilisateur s'identifie sur le site, je met dans une bdd :

    - pseudo
    - pass
    - adresse ip
    - session id (généré aléatoirement)

    donc voila, a chaque page, il vérifie par rapport a session id ... l'adresse ip du gars ... si l'adresse ip est bonne, ca continue le chargement de la page ...
    si l'adresse ip n'est pas bonne ca lui propose de se logger ... (ou alors ca le fait continuer la visite du site en anonyme) ...

    voila, j'aimerais juste savoir si c'est correcte ... si c'est assez sécurisé ... et si vous pouvez me donner d'autres conseils, n'hésitez pas ;)
    BaKa, 5 Juin 2003
    #1
  2. Offline
    Styleman Touriste
    beuh deja avec l'adresse ip, c nul, si il va dans un cyber il c pas se connecter...
    Styleman, 5 Juin 2003
    #2
  3. Offline
    BaKa Touriste
    bah si ... tout pc connecté au net a une adresse ip ... mais dans un cyber, l'ip est la meme pour tous les gars du cyber ...

    le seul prob c'est si un gars tu cyber recopie la session id du gars qui est connecté a coté de lui saura se connecter sur son compte ....

    (et aussi tu viens de me faire penser que je devrais pouvoir gérer plusieurs adresse ip les meme en meme temps ;) )

    EDIT:

    en + je viens de faire le petit script pour générer l'id de la session, ca me donne des trucs comme ca :
    Vc3XnjR4Vq943eakjFBnUV4adk9ReSqt

    ... donc vas y pour recopier ;)
    BaKa, 5 Juin 2003
    #3
  4. Online
    RedCross ex membre
    RedCross, 5 Juin 2003
    #4
  5. Offline
    Styleman Touriste
    Vraiment pas mal le tuto, mieux ke je n'ai jamais vu :wink:

    gg

    Enfin, il dis des chose ke je n'ai jamais lues dans d'autres tuto et ce sont des choses interressantes

    thx bcp
    Styleman, 5 Juin 2003
    #5
  6. Offline
    SUEd Touriste
    selon moi, pour que ce soit un minimum sécurisé, il te faut :

    une table users avec au minimum les champs :
    - user_id
    - username
    - user_password (encodé en md5(), c mieux :p)

    une table sessions avec au minimum les champs :
    - session_id
    - session_user_id
    - session_user_ip

    Lorsqu'un utilisateur se logge, tu fais une recherche sur le username dans la table user.
    Si le username existe, tu compares le mot de passe avec celui de la base.
    Si le pseudo n'existe pas, tu renvoies une erreur.

    Si le mot de passe est faux, tu renvoies une erreur.

    Si le mot de passe est correct :
    - tu crées une session dans la table sessions avec un session_id aléatoire, le user_id de l'utilisateur et l'ip de l'utilisateur
    - tu crées une cookie chez l'utilisateur avec comme information le session_id et l'user_id (tu fais un serialize comme expliqué dans d'autres topics). En fait, le user_id est inutile, mais c'est une sécurité supplémentaire, on va dire :p

    Comme çà, dès qu'un utilisateur arrive sur ton site :
    - Tu regarde s'il a une cookie.
    - S'il a une cookie, tu cherches le session_id de la cookie dans la table. Si tu le trouves, tu vérifies que l'user_id est le même. Si c'est le cas, tu peux considérer l'utilisateur comme authentifié avec cet user_id
    - Si le session_id n'existe pas ou si le user_id ne correspond pas au session_id, tu effaces la cookie :p et tu considères la personne comme un anonyme :p
    - Si l'utilisateur n'a pas de cookie, tu le considères comme un anonyme :)

    Voilà :) dites moi ce que vous en pensez :)

    (perso, j'ajouterais à la table sessions : date_create, date_expire, date_lastvisit)
    SUEd, 5 Juin 2003
    #6
  7. Offline
    Styleman Touriste

    Toi t'es trop une star lol....

    V essayer ça apres les vacances, parce ke la je dois etudier avec les exams, et puis je bloke a fond avec les session lol
    Styleman, 5 Juin 2003
    #7
  8. Offline
    k o D Belge !
    Oui moi aussi devrait faire çà pour Notr'Empire après les exams
    k o D, 5 Juin 2003
    #8
  9. Online
    niafron ex membre
    un conseil, c lire les tutoriaux car c en general un truc de base ca

    nexen.net ou programmersheaven.com tu trouvera ton bonheur
    niafron, 5 Juin 2003
    #9
  10. Online
    kEr0 ex membre
    Ben puisque t'a l'air de bien connaitre, tu m'aideras surment bientot :p
    kEr0, 5 Juin 2003
    #10
  11. Online
    niafron ex membre
    moi je te fais un login sur l'adn de t poils de couil*** c bcp plus sur

    et pour kicker >> 2 briks et *PAF*
    niafron, 5 Juin 2003
    #11
  12. Online
    kEr0 ex membre
    Je pense avoir un peu compris comment sa fontionnait mais par contre pour générer un nom de session ca je sais po cmt on fait :-(
    kEr0, 5 Juin 2003
    #12
  13. Online
    niafron ex membre
    generalement

    adresse de qqchose + la date
    niafron, 5 Juin 2003
    #13
  14. Offline
    SUEd Touriste
    un nom ou un numéro ?

    pour le numéro de session : va voir du coté de uniqid() sur nexen.net :)
    SUEd, 5 Juin 2003
    #14
  15. Offline
    Styleman Touriste
    Moi mopn bleme avec le php, c ke je comprend le principe et tout, mais pour passer du Français au code c autre chose, et le truc c pour verifier dans les session, si c bien cet utilisateur la ki est loggé, par exemple, ke ce soit pas un autre utilisateur loggé qui le fasse...parce ke sur phpdebutant et plein d'autre, j'ai testé, ça fonctionne bien, mais une fois, ke je v sur par xemple modif.php, si je rajoute ?id=1 et ben j'ai les infos du 1 et je peux les modif, si je met ?id=2 ben je peux modifié ceux du 2, enfin, tout les membres quoi...


    Le truc, c ke les session ou l'ont prends les infos sur une base de données, je m'y perd un peu, genre $login etc...comment je c si je prends le login de la session ou le login qui est dans la bdd?
    Styleman, 5 Juin 2003
    #15
  16. Offline
    Styleman Touriste
    Moi mon bleme avec le php, c ke je comprend le principe et tout, mais pour passer du Français au code c autre chose, et le truc c pour verifier dans les session, si c bien cet utilisateur la ki est loggé, par exemple, ke ce soit pas un autre utilisateur loggé qui le fasse...parce ke sur phpdebutant et plein d'autre, j'ai testé, ça fonctionne bien, mais une fois, ke je v sur par xemple modif.php, si je rajoute ?id=1 et ben j'ai les infos du 1 et je peux les modif, si je met ?id=2 ben je peux modifié ceux du 2, enfin, tout les membres quoi...


    Le truc, c ke les session ou l'ont prends les infos sur une base de données, je m'y perd un peu, genre $login etc...comment je c si je prends le login de la session ou le login qui est dans la bdd?
    Styleman, 5 Juin 2003
    #16
  17. Offline
    Styleman Touriste
    mouarf il a koi cet able pas l'habitude et j'ai poostordi, sorry je suis sur un ordi posté 2x, sorry :oops:
    Styleman, 5 Juin 2003
    #17
  18. Offline
    SUEd Touriste
    c'est pour ça qu'il vaut mieux passer par les cookies pour sauvegarder l'id :p ou alors, une vrai session php, dont un tutorial excellent est fait sur phpinfo :)
    SUEd, 5 Juin 2003
    #18
  19. Offline
    Styleman Touriste
    Oui ben je v bien lire ça apres les exams, faire des tests et tout :wink:

    M'a l'air tres bien ce tuto mais je ne v pas me contenter que de celui, je v voir plusieurs tutoi pour voir les différentes possibilitées
    Styleman, 5 Juin 2003
    #19
  20. Online
    SpArtA ex membre
    mouais faut pas faire un truc avec mysql pour gérer les sessions, c'est une usine a gaz ca
    Tout est déjà présent pour le faire avec php

    Quand t'a vérifié le login/pass de l'utilisateur alors tu fait
    $_SESSION['authentifié'] = true;
    Puis apres y a plus qu'a tester sur les autres pages
    if ($_SESSION['authentifié']) {
    print "wazaaaa mon frere";
    } else {
    print "degage pov noob";
    }

    y a plus qu'a vérifier si il faut mettre session_start() au tout début de la page c'est tout.
    SpArtA, 6 Juin 2003
    #20
Statut de la discussion:
Fermée.