Recuperer le mot de passe

Fermé
samiapirou Messages postés 112 Date d'inscription dimanche 16 juin 2013 Statut Membre Dernière intervention 11 novembre 2015 - 3 août 2013 à 13:52
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 - 3 août 2013 à 14:54
Bonjour
je voulais faire un programme qui permet de récupérer le mot de passe en cas d'oublie
pouvez vous m'aider
merci

3 réponses

matrix4422 Messages postés 6118 Date d'inscription dimanche 16 septembre 2007 Statut Contributeur Dernière intervention 22 novembre 2018 1 358
3 août 2013 à 13:53
Quel mot de passe ?
0
samiapirou Messages postés 112 Date d'inscription dimanche 16 juin 2013 Statut Membre Dernière intervention 11 novembre 2015 1
3 août 2013 à 14:15
l'acces a l'espace client se fait par un formulaire d'authentification
si bien le login et le mot de passe
c'est a dire si le client oubli son mot de passe comment peut on lui envoyé son mot de passe
0
samiapirou Messages postés 112 Date d'inscription dimanche 16 juin 2013 Statut Membre Dernière intervention 11 novembre 2015 1
3 août 2013 à 14:14
l'acces a l'espace client se fait par un formulaire d'authentification
si bien le login et le mot de passe
c'est a dire si le client oubli son mot de passe comment peut on lui envi=oyé son mot de passe
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228
Modifié par gravgun le 3/08/2013 à 14:57
C'est un poil compliqué.
Supposons que la table 'comptes' comporte les champs: id (int, auto increment), login (string), mdp (string, MD5/SHA1 du mot de passe), email (string), cle_recup (string), cle_recup_expire (datetime).

Créé une page où l'utilisateur doit rentrer son nom de compte et adresse email (et un captcha pour éviter le spam) qui fera un coup de SQL qui:
1. Trouvera l'entrée du compte
2. Créera la clé "cle_recup" (indice: sha1(rand()) ) et la date d'expiration de la clé (indice: strtotime("+15 min") ), et insérera ces données dans la base de données
3. Enverra un mail au propriétaire du compte vers une page http://tonsite.fr[nom du compte]&k=[la clé]

Et cette page "recup.php", demandera le nouveau mot de passe, et vérifiera la clé comme ceci:
1. On trouve l'entrée du compte (donné par $_GET["c"])
2. On compare le champ "cle_recup_expire" et la date+heure actuelle; s'il est trop tard, message d'erreur, sinon étape 3
3. On compare le champ "cle_recup" et la clé donnée dans $_GET["k"], si pas bon, erreur
4. On change le champ "mdp" du compte si tout est bon.

Une fois que c'est terminé, comme il faut ou avec une erreur, on efface la clé de la base, pour éviter les problèmes. Quand à la date d'expiration, on peut la "remettre à zéro" (date de l'époque UNIX).

C'est pas le plus simple à faire mais c'est robuste, et bien sécurisé (évidemment y'a mieux, on pourrait ajouter une vérification d'adresse IP, réduire les 15 minutes d'expiration à 5, etc...).
from human import idiocy
del idiocy
0