#php #mysql #codeigniter
#php #mysql #codeigniter
Вопрос:
Я работаю над функцией сброса пароля
Идея заключается в
добавьте поле в пользовательскую таблицу, например pw_reset_code varchar (40) Nullable
,
затем я случайным образом генерирую ключ и добавляю его в это поле, когда пользователь запрашивает пароль.
Кроме того, сгенерируйте ссылку для получения ключа сброса, например
http://myadmin.com/reset/123233432423412342342343434324234
Затем сбросьте php, чтобы проверить, существует ли ключ, например, 123233432423412342342343434324234 в базе данных ,
обновите пароль для пользователя, соответствующий ключу, и удалите ключ
Итак, это правильный способ создания функции сброса пароля? Спасибо за помощь
Ответ №1:
Вы могли бы сделать это так, да.
Но вы также можете иметь ее в таблице spererate, в которой хранятся время, ip-адрес и идентификатор.
Чтобы добавить дополнительную безопасность, я бы добавил идентификатор пользователя или, если вы не хотите его показывать, имя пользователя и ключ.
Затем срок его действия истекает примерно через час.
Также добавьте поле, если ключ уже используется.
Итак, если кто-то пытается получить пароль несколько раз от пользователя и терпит неудачу.
Вы могли бы уведомить пользователя о том, что кто-то, вероятно, пытается войти в их учетную запись.
И, кстати, нет «правильного пути». Существуют разные способы решения проблемы, и в конце концов это зависит от вас.
Комментарии:
1. это означает, что мне нужно отслеживать время запроса, чтобы не позволять пользователю запрашивать слишком много раз