Можно создать дубликат:
What is the best “forgot my password” method?PHP метод забыл пароль
После прочтения о различных забытых методах запроса пароля, я решил пойти с отправкой пользователя ссылки по электронной почте, где они могут поменяйте свой пароль. Мой вопрос - это лучший способ сделать это? Вот мой текущий метод:
- Попроси пользователь для своей электронной почты
- Отправьте им ссылку на страницу newpassword.php со случайно сгенерированным длинным буквенно-цифровым кодом в качестве параметра.
- хэшировать этот код и хранить его в таблице mysql с адресом электронной почты и меткой времени
- Когда пользователь перейдет по ссылке, их снова попросят отправить электронное письмо.
- найти таблицу для этого письма. если отметка времени превышает 24 часа, она удаляется, и пользователь должен запросить другую ссылку.
- убедитесь, что код соответствует. если да, то пусть пользователь сбросит пароль.
- изменить пароль в таблице пользователей и отправить другое письмо, чтобы подтвердить, что оно было изменено.
Я новичок в обеспечении безопасности веб-сайта, но я не нашел много примеров алгоритмов для сброса пользователем забытого пароля (за исключением простого создания нового и отправки его им, что кажется довольно слабым мне). Есть ли недостатки безопасности в моем подходе? Кто-нибудь знает какие-нибудь хорошие руководства, на которые я могу смотреть? Заранее спасибо!