Questions a propos de l'authentification. - PHP - Programmation
Marsh Posté le 15-08-2003 à 11:38:15
SmilM a écrit : Salut! |
Non.
Avec les sessions, tu definis une variable de session qui prend une certaine valeur quand lors du passage a une page d'authentification, le mot de passe est verifie. Seul le pseudo du membre peut avantageusement etre conserve dans l'UrL mais surtout pas son PASS !!!
Marsh Posté le 15-08-2003 à 11:49:46
je crois capté :
J'ai une table sessions :
IdSessions
Pseudo
Duree
Et dans ma page d'authentification je verifie si le passe est OK et si c OK je crée l'IDSessions dans ma table accompagné du pseudo et de la durée (1h par exemple)
Dans mes URL, je passe en parametre, le pseudo et l'IdSessions.
Et je crée une fonctions que je mets a chaque page ou l'on doit etre identifié pour y accéder du genre :
$requete="SELECT * FROM sessions WHERE IdSessions=$IdSessions AND pseudo=$pseudo";
$resultat=mysql_query($requete,$connexion);
if(mysql_num_rows($resultat))=1
{
ON AFFICHE MA PAGE
}
else
{
echo"Identification impossible, veuillez vous reconnecter";
}
C'est ca non ?
j'ai pas gerer la variable de temps, je sais pas trop comment faire pour le moment, mais je vais chercher, je crois que je vais utiliser le temps Unix. Une fois cette heure écoulé, je suprime l'enregistrement de la sessions concerné.
c'est ca ?
Marsh Posté le 15-08-2003 à 12:32:29
non, tu n'utilises pas les sessions là mais ta base de données...
http://www.phpdebutant.org/article69.php
Marsh Posté le 19-08-2003 à 11:13:31
En fait, sur ta page où la personne se logue (entre son nom d'utilisateur et son mot de passe), une fois qu'elle valide les infos saisies, via un script php tu récupères ces infos et tu crées une nouvelle session (un objet session par utilisateur, mais t'as pas à t'en soucier, c'est apache qui gère ça). Sans cet objet session, tu te définis 2 variables, par ex:
$_SESSION["Login"] = "toto";
$_SESSION["password"] = "titi";
mais avant d'avoir créé ton objet session, t'auras au préalable vérifié que le couple logion/password existe dans ta bd.
Ensuite, sur chacune de tes autres pages, tu vérifiras simplement que ton objet session existe pour cet utilisateur (fonction isSet(), je crois, par ex: isSet($_SESSION["Login"])).
Histoire de faire un truc un poil plus sécurisé, j'encodais en md5() côté client (donc via du javascript) le mot de passe et c'était ce mot de passe en md5 qui était stocké dans la bd. Comme ça, lors de la transaction client/serveur, le mot de passe est "crypté" (il est pas en clair) et dans ta bd, c'est aussi le cas. Ainsi, l'administrateur pourra pas connaître les mots de passes des utilisateurs...
Marsh Posté le 20-08-2003 à 16:30:37
rufo a écrit : Histoire de faire un truc un poil plus sécurisé, j'encodais en md5() côté client (donc via du javascript) le mot de passe et c'était ce mot de passe en md5 qui était stocké dans la bd. Comme ça, lors de la transaction client/serveur, le mot de passe est "crypté" (il est pas en clair) et dans ta bd, c'est aussi le cas. Ainsi, l'administrateur pourra pas connaître les mots de passes des utilisateurs... |
Il conait mieux que ça.
Il conait tous les codes de tout le monde.
Pas le mot de passe en clair, c'est vrai, mais l'équivalent en MD5.
Un simple formulaire dans une page sans la fonction de codage MD5 et il peut se logguer a la place de n'importe qui.
Marsh Posté le 20-08-2003 à 18:32:16
omega2 a écrit : Il conait mieux que ça. |
oui, effectivement, mais il ne connaîtra toujours pas le mot de passe en clair employé par l'utilisateur. De ce fait, il ne pourra pas pirater la boîte e-mail de l'utilisateur (s'il sait sur quel compte il a son adresse e-mail)
Marsh Posté le 20-08-2003 à 18:55:31
rufo a écrit : |
mouais... enfin en même temps on met pas n'importe qui comme administrateur
Marsh Posté le 20-08-2003 à 20:32:24
rufo a écrit : |
Peut être pas, mais il poura ce conecter comme il veut a la place de n'importe quel utilisateur.
Par contre, dire que pour vérifier que le code est bon, tu vérifies, le code saisie avec la valeur dans la base et que dans la base, c'est des valeurs codés avec password() et que dans la requête, tu codes le code saisie grace a la fonction password, là, oui, je dirais, c'est sécurisé vu que même en lisant le code dans la base, l'administrateur ne poura ce faire passer par personne par le système normal.
Marsh Posté le 20-08-2003 à 23:06:53
euh juste comme ca,
mettre dans l url id de la session c debile, passke ta plu ka copier coller l url pour te connecter sans t etre identifier.
Marsh Posté le 22-08-2003 à 18:20:32
DocWario a écrit : euh juste comme ca, |
ca c'est vrai !
Merci pour vos réponses a tous !!
Marsh Posté le 15-08-2003 à 11:27:28
Salut!
Pour mon site IADO, pour l'accés membres je mettais en parametre d'URL le pseudo et le mot de passe du membres et je les verifiais grace a une fonctions a chaque page.
(fonctions qui cherche dans la table membre "WHERE pseudo=$pseudo and pass=$pass" )
Mais je pense que cette technique n'est pas trés pro et que c'est un peu merdique non ?
Qu'est ce que vous utiliser vous ?
Les sessions ? C'est un peu prés la meme chose non ?
Merci d'avance.
---------------
AfterEnd: Batissez un nouveau monde