OriginalGriff
Надеюсь, вы храните пароли не в обычном тексте (очень, очень плохо) и не в зашифрованном виде (все еще очень, очень плохо), а в хэше - и в этом случае, как только пользователь забудет пароль, никто не знает, что это такое и как его "восстановить".
Вместо этого, когда они нажимают "забыли мой пароль", вы отправляете ссылку на зарегистрированный адрес электронной почты, который содержит GUID или аналогичный, чтобы определить, какая ссылка была нажата. Затем вы просматриваете этот GUID в таблице "забытый пароль", которая содержит дату и время истечения срока действия, а также ссылку на исходную учетную запись. Если все в порядке, вы сбрасываете пароль на случайное значение, сообщаете им новый пароль, удаляете строку из таблицы "забытый пароль" и ведете их на страницу "изменить пароль", чтобы они могли ввести новый.
Звучит сложно? на самом деле это не так. Но это должно быть сделано таким образом, чтобы я не "украл" ваш счет!