Dans ce TP, on nous demande de code une page.php permettant la connection d'un utilisateur membre. Pendant la connection, le mot de passe du formulaire est comparé avec le mot de passe haché enregistré dans la base de donnée. Le problème est d'ailleurs évoqué ici : https://openclassrooms.com/forum/sujet/verification-mot-de-passe-php-tp-espace-membres. Jusqu'ici pas de problème.
J'aimerais permettre l'accès d'une page .php uniquement aux membres du site. Pour cela, j'aurais besoin de comparer à chaque rafraîchissement de la page les données (pseudo, mot de passe) à ceux de la base de données. J'ai lu qu'il fallait enregistrer le mot de passe (en cookie ou en array $_SESSION) en mode hach. Le problème est, que, une fois le mot de passe stocké en mode hach, je ne sais pas comment le comparer au mot de passe hach enregistré dans la base de donnée.
Mes questions sont :
- Faut-il nécessairement stocké le mot de passe en mode hach : Dans un array de session ? Dans un cookie ?
- Si oui, comment le comparer à celui de la base de donné ?
- Il y a t'il une méthode plus simple pour procéder ?
J'ai mal formulé ma problématique, je vais essayer de mieux l'expliquer :
Imaginons que le membre de mon site se connecte et coche une case "connection automatique". De mon coté, je dois enregistrer son pseudo et son mot de passe dans ses cookies pour une future connection.
Quand le membre arrive sur le site, pour pouvoir le connecter automatiquement je dois tester son pseudo et son mot de passe. Je me retrouve alors à devoir comparé deux mots de passe HASHE (celui des cookies et celui de la base de données). Comment fait-on cela ?
Alors déjà on ne stock pas le mot de passe même hash en cookie. Pour le système de connexion automatique tu va juste ajouté un champs en base de donnée, token par exemple qui sera null par défaut. Quand la personne clique sur "Se souvenir de moi" à la connexion, tu va générer un token (un uuid par exemple en hash avec un salt par exemple) et tu va le sauvegarder en base de données. Dans le cookie tu va y mettre par exemple le nom "rememberme" et la valeur ce sera par exemple "id---token".
Sur toutes les pages de ton site après le session_start() tu pourra faire un truc du genre : Si pas de session['auth'] mais qu'il y a un cookie['rememberme'] alors on check. Tu récupère l'id et le token et tu as juste à check si une personne existe avec ces 2 informations là. Si c'est bon tu régénère un autre token que tu update en base et tu créer la session comme pour la connexion (avec les informations venant de la bdd ou juste l'id au moins).
J'ai bien compris l'interêt de ta méthode et je vais essayer !
Cette méthode a un nom ? une référence ? Ou c'est une méthode usuelle ?
Merci à vous deux pour vos réponse,
A bientôt
Maxime
Vérification d'un mot de passe haché stocké cookie
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
N'oubliez pas d'activer les erreurs PDO.
My website : Mon serveur discord, Se demerder tout seul, Faille XSS et SQL