Установить базу данных 'user' для восстановления пароля
У меня вопрос. Я осуществляю восстановление пароля, а потом подумал: "Что если" незнакомец "сделает несанкционированное восстановление пароля, изменив чужой пароль?" Итак, мое первое решение: я установлю два поля в таблице "user", которые называются "password" и "temp_password". Если реальный пользователь просит восстановить пароль, новый случайный пароль будет сохранен в "temp_password" и будет отправлено электронное письмо. Таким образом, злобный пользователь не сможет изменить пароль кого-либо еще, а владелец электронной почты может отклонить попытку смены пароля. Это правильно? Спасибо заранее за вашу помощь. Привет
1 ответ
Я бы посоветовал вам нормализовать это, сохранив временный пароль в отдельной таблице от вашего user
Таблица. Скорее всего, у каждого пользователя будет несколько попыток восстановления пароля в течение его жизни, и вы захотите сохранить запись каждой из этих попыток для потомков.
Если вы сохраните поле в user
таблица, каждый последующий запрос после первого запроса на восстановление пароля отменяет предыдущий.
Убедитесь, что в этой новой таблице есть столбец, в котором указано, какой запрос в данный момент активен, и есть сценарии на стороне сервера / базы данных, которые гарантируют, что только одна строка на идентификатор пользователя может иметь активный флаг.