Возможный дубликат:
Забыли пароль: что является лучшим методом реализации функции забытого пароля?
Я программирую сайт сообщества.
Я хочу создать функцию "забыл свой пароль".
Оглядываясь на разные сайты, я обнаружил, что они используют один из трех вариантов:
-
отправить пользователю электронное письмо со ссылкой на уникальный скрытый URL, который позволит ему сменить пароль (Gmail и Amazon)
-
отправить пользователю электронное письмо с новым, случайно сгенерированным паролем (Wordpress)
-
отправить пользователю свой текущий пароль (www.teach12.com)
Вариант № 3 представляется наиболее удобным для пользователя, но поскольку я сохраняю пароли как хэш MD5, я не вижу, как опция № 3 будет доступна для меня, так как MD5 необратимы. Это также кажется опцией небезопасной, поскольку это означает, что веб-сайт должен сохранять пароль в открытом тексте где-то и, по крайней мере, текстовый пароль отправляется через небезопасное электронное письмо пользователю, Или я здесь что-то не хватает?
Итак, если я не могу сделать вариант №1, вариант # 2 кажется простейшим для программирования, так как мне просто нужно изменить пароль пользователя и отправить его Для него. Хотя это несколько небезопасно, поскольку вам нужно, чтобы живой пароль передавался по небезопасной электронной почте. Тем не менее, это может быть неправильно использовано разработчиками проблем pester users, введя случайные электронные письма и постоянно меняя пароли разных пользователей.
Вариант №1 представляется наиболее безопасным, но требует немного дополнительного программирования для устранения скрытого URL-адреса, срок действия которого истекает и т.д., но, похоже, это то, что использование больших сайтов.
Какой опыт вы использовали/программировали эти различные варианты? Есть ли какие-либо опции, которые я пропустил?