Jag förstår inte varför du skickar lösenorden till dem?
Klienterna ställer in sitt önskade lösenord, du hash det, lagrar hash och ingen förutom klienten / hans lösenordshanteringsprogram vet det ursprungliga lösenordet (inte ens dig), och när de glömmer det, skickar du dem en återställningslänk.
Men om du verkligen måste skicka lösenordet till honom, föreslår jag att du skickar en länk till dynamiskt genererade webbsida som visar hans lösenord (endast en gång).
du måste tillfälligt lagra något liknande i din databas
emailTocken char (32) lösenord varchar + - -------------------------------- + ----------------- - + | emailTocken | lösenord | + ---------------------------------- + -------------- ---- + | 202CB962AC59075B964B07152D234B70 | jhds7ytht_id | | CF297E613A7F7892A3BF348EE526ABAD | hdhdbdue874 # | | 8F14E45FCEEA167A5A36DEDD4BEA2543 | yeheb8cvddt5) | | 2510C39011C5BE704182423E3A695E91 | 6 # hdyd98_jee | | 8F14E45FCEEA167A5A36DEDD4BEA2543 | yhrtxbxv48_e | + ---------------------------------- + -------------- ---- +
och skicka ett e-postmeddelande till honom om att du bara exponerar e-postadressen. Klicka inte på lösenordet
Hej, klient Följ den här länken för att se din lösenord https://example.com/showPassword?emailTocken=8F14E45FCEEA167A5A36DEDD4BEA2543
på webbservern när någon begär denna länk gör du följande
- välj lösenordet som har emailTocken tillhandahållen
- ta bort posten från databasen
Nu kommer den första som begär denna länk att se något som
Hej, klient, ditt lösenord är yeheb8cvddt5) OBS: VI RADERAR DETTA LÖSENORD FRÅN VÅRA SERVERAR, SÅ DU MÅSTE KOMMA / SPARA DET
Om någon senare begär samma länk ser han något som
Tyvärr, det här lösenordet finns inte eller har visats tidigare!
Fördelarna med detta tillvägagångssätt med att skicka lösenordet i e-post:
- lösenordet exponeras bara en gång för den första tittaren, inte för den som ser e-postmeddelandet senare .
- om någon annan först tittade på lösenordet (en man-i-mitten) kommer den legitima användaren inte att kunna se det och kommer att be om hjälp, vilket får oss att veta att det finns något fel hände, bättre än någon annan ser det, och vi vet inte ens. Jag hoppas att ditt e-postagentprogram inte begär detta automatiskt av någon anledning :( .
nackdelarna med denna metod än att skicka lösenordet i e-post:
- kräver webbserver
- mer arbete än att bara skicka lösenordet i e-post lätt
Som jag berättade förut, ingen utom klienten borde veta lösenordet, och jag har aldrig provat detta tillvägagångssätt, men åtminstone är det bättre än att exponera lösenordet i klartext i en EMAIL som kan finnas på många datorer / servrar ett tag.