Как сделать удобное восстановление паролей
В базе данных пароли могут хранится в трех видах: незашифрованные, зашифрованные с возможностью восстановления и необратимо зашифрованные.
В первом и втором случае проблем с восстановлением пароля нет. Он просто извлекается из базы, при необходимости дешифруется и отправляется пользователю.
В третьем случае все сложнее. Восстановить пароль нельзя, только сменить. Чтобы хитрый злоумышленник не смог нагадить пользователю и изменить ему пароль сперва на адрес электронной почты, привязанный к этому аккаунту, высылается письмо с просьбой подтвердить свое желание сменить пароль. Для этого в полученном письме надо нажать на специальную ссылку. После этого прийдет новое письмо с автоматически сгенерированным паролем. Понятно, что пользователь сразу как зайдет на сайт его сменит, так как сразу и надолго запомнит присланную абракадабру может только специально тренированный человек, например разведчик :)
В результате, чтобы восстановить возможность работать с сайтом надо:
1) Зайти на сайт, заполнить форму восстановления пароля, отправить ее.
2) Зайти в ящик, открыть письмо, нажать на ссылку.
3) Зайти в ящик, скопировать пароль.
4) Зайти на сайт, ввести пароль, перейти на страницу смены пароля, сменить пароль на привычный.
Можно ли облегчить эту операцию? Да, на сто процентов да.
После запроса на постановление пароля пользователю приходит уникальная ссылка для временного входа, которая действительна в течении определенного времени, например 4-х часов. Пройдя по ней пользователь автоматически авторизуется на сайте и оказывается на странице смены пароля где его и благополучно меняет на привычный.
Количество действий сократилось в два раз раз. Одно заполнение формы, одна проверка почты, один переход по ссылке.
P.S. Этот пост хотел написать очень давно, с месяца полтора. Все никак не доходили руки, но недавно начал разбираться в Drupal и увидел там именно такое решение. И это меня сподвигло, ведь делает же кто-то правильно, а не как вошло в привычку у большинства.
Теги: веб-разработка, идеи, проектирование, размышленияЕще по теме
Posted on мая 22, 2007
Filed Under Проектирование и разработка сайтов
Комментарии
Всего комментариев: 5

Всегда казалось, что на всех хороших сайтах так и сделано ;)
Не на всех) Далеко не на всех.
Ключевое слово — «хороших» ;)
менеджер паролей в Firefox рулит — что бы я без него делал!
гым, а чем шифровать будешь? сам кстати именно так и делаю, и мысль присылать пароль юзеру, меня даже не посещала.
меня вот например больше интересует грамотно оформленная авторизация, точнее якоря указывающие на то что юзер авторизирован