Je ne comprends pas pourquoi vous leur envoyez les mots de passe?
Les clients définissent leur mot de passe préféré, vous le hachez, stockez le hachage, et personne à part le client / son programme de gestion de mots de passe ne le sait le mot de passe d'origine (pas même vous), et quand ils l'oublient, vous leur envoyez un lien de réinitialisation.
Cependant si vous devez vraiment lui envoyer le mot de passe, je vous suggère de lui envoyer un lien pour générer dynamiquement page Web qui affiche son mot de passe (pour 1 fois seulement).
vous devez temporairement stocker quelque chose comme ça dans votre base de données
emailTocken char (32) password varchar + - -------------------------------- + ----------------- - + | emailTocken | mot de passe | + ---------------------------------- + -------------- ---- + | 202CB962AC59075B964B07152D234B70 | jhds7ytht_id | | CF297E613A7F7892A3BF348EE526ABAD | hdhdbdue874 # | | 8F14E45FCEEA167A5A36DEDD4BEA2543 | yeheb8cvddt5) | | 2510C39011C5BE704182423E3A695E91 | 6 # hdyd98_jee | | 8F14E45FCEEA167A5A36DEDD4BEA2543 | yhrtxbxv48_e | + ---------------------------------- + -------------- ---- +
et lui envoyer un email que vous exposez uniquement l'emailTocken pas le mot de passe
Bonjour, client Suivez ce lien pour voir votre mot de passe https://example.com/showPassword?emailTocken=8F14E45FCEEA167A5A36DEDD4BEA2543
sur le serveur Web lorsque quelqu'un demande ce lien, procédez comme suit
- sélectionnez le mot de passe qui a le emailTocken fourni
- supprimer son enregistrement de la base de données
Le premier qui demande ce lien verra quelque chose comme
Bonjour client, votre mot de passe client est yeheb8cvddt5) REMARQUE: NOUS SUPPRIMERONS CE MOT DE PASSE DE NOS SERVEURS, VOUS DEVEZ VOUS RAPPELER / LE SAUVEGARDER
Si quelqu'un demande plus tard le même lien, il verra quelque chose comme
Désolé, ce mot de passe n'existe pas ou a déjà été consulté!
Avantages de cette approche par rapport à l'envoi du mot de passe par e-mail:
- le mot de passe n'est exposé qu'une seule fois pour le premier spectateur, pas pour celui qui verra l'e-mail plus tard .
- si quelqu'un d'autre a d'abord consulté le mot de passe (un homme du milieu), l'utilisateur légitime ne pourra pas le voir et demandera de l'aide, ce qui nous fera savoir qu'il y a quelque chose de mal s'est produit, mieux que quelqu'un d'autre le voit, et nous ne savons même pas. J'espère que votre programme d'agent de messagerie ne le demandera pas automatiquement pour quelque raison que ce soit :( .
inconvénients de cette approche par rapport à l'envoi du mot de passe par e-mail:
- nécessite un serveur Web
- plus de travail que d'envoyer simplement le mot de passe par e-mail facilement
Comme je vous l'a déjà dit, personne à part le client ne devrait connaître le mot de passe, et je n'ai jamais essayé cette approche, mais au moins c'est mieux que d'exposer le mot de passe en texte brut dans un EMAIL qui peut résider sur de nombreux ordinateurs / serveurs pendant un certain temps.