Page membre: le meilleur systeme d'authentification ? [ PHP ] - PHP - Programmation
Marsh Posté le 26-05-2002 à 01:44:06
je fais comme ça :
choix lors de la connexion d'un temps d'authentification (15min, 30min, 1h) ou bien autentification automatique par cookie.
je crée une session pour tout le monde.
si le login+pwd donné lors de l'authentification est valide, j'ajoute l'entrée dans la table des utilisateurs onlines (sess_id, user_id, durée) valide pour la durée encodée ou pour 1h si c'est par cookie.
Au chargement de chaque page, je regarde si la session est enregistrée dans la table des utilisateurs enregistrés.
soit c'est le cas, --> ok
soit ce n'est pas le cas, alors je regarde si un cookie existe.
S'il existe et que le login+pwd sont ok, je rajoute la sess_id, user_id, durée (c totalement transparent pour l'utilisateur).
Marsh Posté le 26-05-2002 à 15:25:42
JWhy a écrit a écrit : ensuite, sur chaque page, je verifie que le login/sessionid passés existent en base, si c'est le cas, c'est ok, sinon |
et pourquoi t'utilise le sessionid ?
tu pourrais pas simplement sur chaque page vérifier que login = $login et password = md5($password) ?
Marsh Posté le 26-05-2002 à 16:16:16
bah meme avec uniquement des cookies, si tu change de machine, tu dois te retapper l'authentification, hein
Marsh Posté le 26-05-2002 à 16:18:00
ben faut créer les cookies une fois sur chaque machine, oui. mais après les cookies étant identiques, tu peux passer d'une machine à l'autre sans à avoir à te relogger
Marsh Posté le 26-05-2002 à 16:20:38
siewn a écrit a écrit : ben faut créer les cookies une fois sur chaque machine, oui. mais après les cookies étant identiques, tu peux passer d'une machine à l'autre sans à avoir à te relogger |
bin oui
mais sans les sesssions
pour ma part les sessions c un peu inutile, les cookies etant deja assez sécurisé
Marsh Posté le 26-05-2002 à 16:25:04
oui, bien sûr tu vas pas retrouver ta session
mais comme tu le dis, les sessions mieux vaut s'en passer (c'est pas très utile de tte façon)
Marsh Posté le 26-05-2002 à 17:50:58
oui, c'est pour ca que j'etais passé a la deuxieme solution
je voulais juste savoir si c'etait comme ca que ca se faisait generalement ou si il y avait de meilleurs systemes !
Marsh Posté le 26-05-2002 à 18:35:46
la possibilité de ne pas avoir a se relogger lors d'un changement de machines vu que le cookie contient les memes données
Marsh Posté le 26-05-2002 à 18:38:28
euh c'est pas le md5(password) que je stock dans le cookie, hein!
c'est le md5(cle1.login.cle2) avec cle1 et cle2 des cles privés stockés en dehors du repertoire web sur le serveur...
Marsh Posté le 26-05-2002 à 18:39:14
JWhy a écrit a écrit : euh c'est pas le md5(password) que je stock dans le cookie, hein! c'est le md5(cle1.login.cle2) avec cle1 et cle2 des cles privés stockés en dehors du repertoire web sur le serveur... |
héhé bonne protection !
Marsh Posté le 26-05-2002 à 18:53:39
désolé, j'ai un peu de mal mais je vois pas l'intérêt de stocker md5(cle1.login.cle2) au lieu du login simplement ?
Marsh Posté le 26-05-2002 à 19:03:21
lors du login, je verifie qu'il existe un user_id pour le $login et $password passés
si c'est ok, je stock (cookie)
$login : login
$hash : md5(cle1.login.cle2)
lors de l'affichage d'une page, je verifie que
$hash = md5(cle1.$login.cle2)
et que
$login est en base
donc l'interet:
cookie unique lors d'un changement de machine
pas de mdp dans le cookie
inconvenient :
??? (c'est pour ca que je postais )
Marsh Posté le 26-05-2002 à 19:05:07
bah j'en vois aucun, tu peux meme mettre un password ds le cookie, en md5 ya aucune chance de le décrpyter
Marsh Posté le 26-05-2002 à 19:07:21
pas dit: http://www.derekhinch.com/genlog.phtml
vu que c'est les utilisateurs qui choisissent leur mdp (potentiellement "faible" ), md5($password) c'est un peu leg'... a la limit md5(cle1.$password.cle2)
pour info, mes cle1 et cle2 viennent de la:
http://www.winguides.com/security/password.php (64 char et tout coché)
[jfdsdjhfuetppo]--Message édité par JWhy le 26-05-2002 à 19:08:29--[/jfdsdjhfuetppo]
Marsh Posté le 26-05-2002 à 19:17:38
ok, je partais du principe que le md5 était undécryptible alors que c'est vrai qu'il y a des limites à cela... à ce moment là, tu fais un md5($login.$pass) comme ça t'as pas à utiliser de clé.
par contre, ça n'a pas un rapport direct mais n'oublie pas de créer un champ nberreurs et de bloquer toute tentative de login quand il y a eu 10 tentatives successives avec un mot de passe éronné.
Marsh Posté le 26-05-2002 à 19:20:40
c'est pas encore fait, mais c'etait deja dans la liste
Marsh Posté le 11-02-2003 à 16:53:35
JWhy a écrit : pas dit: http://www.derekhinch.com/genlog.phtml |
md5 c intégré à PHP d'office ?
je suis newbie en php, je viens d'asp ........désolé
Marsh Posté le 26-05-2002 à 01:10:30
pour un site ou un forum, c'est quoi le mieux ?
au debut, j'ai commencé a faire un systeme avec une table user:
id, login , password, sessionid
le password est stocké apres un md5().
lors du login, je verifie en base si il existe un id pour login = $login et password = md5($password) et si c'est le cas, je genere un sessionid, je mets a jour la base (colonne sessionid) pour le id recuperé précedemment et je sauve un cookie contenant le login + le sessionid
ensuite, sur chaque page, je verifie que le login/sessionid passés existent en base, si c'est le cas, c'est ok, sinon supression du cookie et redirection vers la page de login.
le pb avec ca, c'est que l'utilisateur est obligé de se reconnecter a chaque fois qu'il change de machine (puisque le sessionid est maj a chaque login et que le contenu du cookie sera different entre 2 machines)
donc j'ai cherché un peu sur le web et je suis tombé sur un article de PHPBuilder.com qui valide le login avec une "clé":
la table user contient maintenant:
id, login , password
et lors du login, apres verif du login/pwd en base, le cookie genere contient le login + une clé = md5($cletopsecret . $login)
ensuite, sur chaque page, je verifie que cledanslecookie = md5($cletopsecret . logindanslecookie). si c'est ok, je verifie que le $logindanslecookie existe en base. si tout est ok, j'affiche la page de membre sinon, suppression du cookie et retour sur la page de login.
ca permet donc que l'utilisateur n'ait pas a se reconnecter sur chacun de ces pcs.
Y-a-t'il de meilleurs systemes? des problemes de securite dans celui que j'utilise (outre la divulgation de la $cletopsecret)?
[jfdsdjhfuetppo]--Message édité par JWhy le 26-05-2002 à 01:20:30--[/jfdsdjhfuetppo]
---------------
www.alliancefrancophone.org ... Home is where the heart is