Другие языки программирования и технологии

PHP - как сделать на сайте "восстановление пароля", если пароли в бд хранятся в виде md5 хеш кодов?

PHP - как сделать на сайте "восстановление пароля", если пароли в бд хранятся в виде md5 хеш кодов? обратно их же не восстановишь, а записывать в файл тоже как-то глупо т.к при получении злоумышленником этого файла все старания будут напрасны...
Соглашусь со всеми.
Вам стоит сделать следующее:
1) Пользователь кликает на "Восстановить пароль"
2) Отвечает на секретный вопрос, который установил при регистрации
3) Проверяем все данные, которые он ввёл, на верность
4) Если хорошо всё, то собираем письмо в котором будет ссылка
5) Как пришло письмо на почту к юзеру, он проходит по ссылке
6) Попадает на страницу, где создаёт новый пароль.
7) Сохраняет.
8) Пароль, который он ввёл пропускаем через md5() и в базу.

В ссылке стоит указывать какие-нибудь ключи, по которым система будет понимать, что за юзер хочет восстановить пароль. Но тупо ссылку делать не стоит, иначе я смогу поменять пароли кому угодно. Возможно сделать табличку где сохранять текущие "восстановления паролей", где записи хранить не более часа. а после восстановления удалять сразу же. Подумайте ещё над этим вопросом.
АН
Александр Неучев
1 540
Лучший ответ
Едгор Едгоров Окей, неплохая схема.
Я сделаю наверное вот так:
1) Пользователь кликает на "Восстановить пароль"
2) Отвечает на секретный вопрос, который установил при регистрации, вводит каптчу.
3) Проверяем все данные, которые он ввёл, на верность
4) Если все хорошо - создаем код подтверждения запроса, засовываем в бд его, отсылаем письмо с этим кодом.
5) Вводит код - получает новый сгенерированный пароль.
6) Если захочет - заходит в личный кабинет и меняет на свой. (я в таких ситуациях записываю на листке и запоминаю полученный)
>> т. к при получении злоумышленником этого файла все старания будут напрасны.. .
если злоумышленник сможет получить доступ к такому файлу что ему помешает выполнить запрос в базу и поставить тот пароль который ему нужен?)) )

и лучше вариант который предложил коллега выше!
Юрий Гореликов
Юрий Гореликов
41 003
обычно не старый пароль восстанавливают, а создают новый
генерируешь новый пароль и отсылаешь пользователю, а он потом может зайти в личный кабинет и изменить на тот что ему нужен.
DR
Dima Rodnikov
638

Похожие вопросы