php + 'sessions perso'

Statut
N'est pas ouverte pour d'autres réponses.

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 ;)
 

Styleman

Touriste
beuh deja avec l'adresse ip, c nul, si il va dans un cyber il c pas se connecter...
 
1er
OP
BaKa

BaKa

Touriste
Styleman a dit:
beuh deja avec l'adresse ip, c nul, si il va dans un cyber il c pas se connecter...
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 ;)
 

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)
 

Styleman

Touriste
SUEd a dit:
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)

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
 

k o D

Elite
Styleman a dit:
SUEd a dit:
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)

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
Oui moi aussi devrait faire çà pour Notr'Empire après les exams
 
N

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
 
K

kEr0

ex membre
Ben puisque t'a l'air de bien connaitre, tu m'aideras surment bientot ^^
 
N

niafron

ex membre
kEr0 a dit:
Ben puisque t'a l'air de bien connaitre, tu m'aideras surment bientot ^^
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*
 
K

kEr0

ex membre
NiafroN a dit:
kEr0 a dit:
Ben puisque t'a l'air de bien connaitre, tu m'aideras surment bientot ^^
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*
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 :-(
 
N

niafron

ex membre
generalement

adresse de qqchose + la date
 

SUEd

Touriste
un nom ou un numéro ?

pour le numéro de session : va voir du coté de uniqid() sur nexen.net :)
 

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

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

Touriste
mouarf il a koi cet able pas l'habitude et j'ai poostordi, sorry je suis sur un ordi posté 2x, sorry :oops:
 

SUEd

Touriste
Styleman a dit:
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?
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 :)
 

Styleman

Touriste
SUEd a dit:
Styleman a dit:
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?
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 :)
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
 
S

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.
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut