Récupération de mot de passe PHP
Je me rends compte que pour la sécurité des mots de passe ne doivent pas être stockées dans une base de données sous forme de texte brut. Si je hachage eux, je peux les valider pour la connexion.
Mais si je veux mettre en place un système de récupération de mot de passe, quelle est la meilleure stratégie car il n'y a pas de perte de hachage?
Quelqu'un pourrait-il me donner un aperçu de une bonne et sûre stratégie pour le stockage et la récupération des mots de passe?
source d'informationauteur sehummel
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas récupérer le mot de passe hashé, vous non plus.
Ce que vous devez faire est plutôt:
Vous n'avez pas de 'récupérer' les mots de passe. Ce que vous faites est l'une des 2 choses.
Mon processus est comme suit.
1. L'utilisateur initie une demande de mot de passe oublié
L'utilisateur clique sur un lien mot de passe oublié et ensuite redirigé vers une réinitialisation de mot de passe de la forme où ils sont invités à entrer leur adresse e-mail enregistrée.
2. Adresse Email vérifiée et un jeton généré
Après que l'utilisateur a entré son adresse email, le système vérifie qu'il existe dans la base de données. Si l'adresse email est valide, puis un jeton est généré et stocké dans la base de données avec les informations d'identification des utilisateurs.
3. Envoyer des e-mail de récupération
Un email est envoyé à l'adresse e-mail contenant un lien vers un formulaire de réinitialisation, le lien inclut 2 OBTENIR les paramètres, y compris le jeton et utilisateurs IDENTIFIANT unique stocké dans la base de données.
4. Réinitialiser le mot de passe
Une fois que l'utilisateur clique sur le lien, il est redirigé vers le formulaire de réinitialisation. Le système récupère les 2 paramètres GET de l'URL et vérifie qu'ils existent dans la base de données. Si le jeton est vérifiée à exister dans la base de données avec l'utilisateur l'utilisateur peut être montré réinitialiser le mot de passe champs de formulaire pour entrer un nouveau mot de passe.
De sécurité
Je suggère l'utilisation de BCrypt (disponible depuis PHP 5.3) pour hacher les mots de passe et pour plus de sécurité, peut-être utiliser une sorte d'expiration pour le jeton ne peut donc pas être utilisé après une période de temps.
Vous pouvez créer un nouveau (et généré de façon aléatoire) le mot de passe pour l'utilisateur, et md5 , puis envoyer par e-mail.