Regénération de MDP : ma procédure contient-elle des risques ?

Regénération de MDP : ma procédure contient-elle des risques ? - PHP - Programmation

Marsh Posté le 29-06-2010 à 13:37:58    

Bonjour,
 
Je fais un script d'espace membre et j'ai une question sur la regénération de mot de passe.
Je les stockes en hashé + crypté.
Je voudrais m'assurer de la pertinence de ma procédure pour la demande d'un nouveau mot de passe.
 
La procédure suivante laisse t elle une faille (fonctionnelle) ?
 
J'ai perdu mon mot de passe.
Je me rends sur une page où je dois indiquer mon adresse email pour recevoir de nouveaux identifiants.
Si elle est valide et qu'elle correspond bien à un compte, je reçois par mail directement un nouveau passe.
Dans ce mail, je dois cliquer sur un lien de confirmation de changement de mot de passe.
=> Je le fais, tout est validé et j'ai mon nouveau passe (en clair dans le mail, hashé et crypté en base)
=> Je ne clique pas ou je clique 48h après la demande de regénération, j'obtiens un refus
 
Je pose la question car parfois il faut d'abord valider qu'on a fait la demande pour suelement là recevoir le nouveau passe.
 
Un grand merci à vous

Reply

Marsh Posté le 29-06-2010 à 13:37:58   

Reply

Marsh Posté le 29-06-2010 à 13:48:02    

Il faut que le lien de validation ne puisse pas être falsifié/généré automatiquement, donc qu'il y ait des vérifications pour qu'il ne puisse pas être utilisé sans connaître le compte (utiliser par exemple un code de sécurité aléatoire).


---------------
http://www.aideinfo.com/  Whois adresses IP/domaines le plus évolué !!  FAQ Free Mobile
Reply

Marsh Posté le 29-06-2010 à 13:56:14    

Merci pour ta réponse.

 

Le code de validation est généré comme ceci :
md5($login.'un texte inventé'.$password);

 

Est-ce suffisant ? ($login contient le login en clair, $password contient le pass hashé MD5 + crypté)

 

Pas de contre indication à envoyer directement le nouveau pass donc ?


Message édité par vanquishV12 le 29-06-2010 à 13:56:29
Reply

Marsh Posté le 29-06-2010 à 15:02:57    

Généralement, on hashe le mot de passe, avec un grain de sel (ton texte inventé) éventuellement pour éviter l'utilisation d'un dictionnaire md5, mais l'ajout du login en plus accroît la sécurité. Mais je parlais plus de l'url de changement de mot de passe. Si par exemple tu utilises une url du type www.xxx.com/newpass.php?login=machin, on peut faire un changement de mot de passe par requêtes auto, surtout si le mot de passe est choisi par l'utilisateur.
 
Concernant l'envoi du mot de passe, à part l'envoyer par courrier postal (difficile à faire en PHP je pense :) ), difficile de faire autrement. Le seul risque est si la BAL mail de l'utilisateur a été piratée, mais là, tu n'y peux rien, c'est à l'utilisateur d'en assurer la sécurité.


---------------
http://www.aideinfo.com/  Whois adresses IP/domaines le plus évolué !!  FAQ Free Mobile
Reply

Marsh Posté le 29-06-2010 à 15:13:17    

Ok merci.
Au niveau de ma confirmation, le lien est de type
register.php?confirm=8ceb25f3694f6e984d324f14bb7e4e
Où ce confirm est la clé hashée MD5 du concaténage login, mot de passe lui même hashé et crypté.
 
Si tu changes le moindre caractère ça ne fonctionne plus bien sur. Pour le MDP, je laisse le choix à l'utilisateur.

Reply

Marsh Posté le 29-06-2010 à 15:19:23    

Tu peux éventuellement rajouter un petit code aléatoire lié au compte, comme c'est utilisé sur phpBB. Ca évite le piratage (à noter qu'une faille a été découverte sur le md5, certains te préconiseraient de plutôt utiliser le sha1 à la place, donc autant bétonner au mieux avec aussi un code aléatoire).


---------------
http://www.aideinfo.com/  Whois adresses IP/domaines le plus évolué !!  FAQ Free Mobile
Reply

Marsh Posté le 29-06-2010 à 15:28:41    

Merci pour tout aideinfo!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed