Я пишу страницу сброса пароля для своего веб-сайта. Вот моя идея:
а. Пользователь нажимает ссылку «забыл пароль» на странице входа.
б. Перенаправить на мою страницу сброса пароля
c. Пользователь вводит свой адрес электронной почты
d. Электронное сообщение, отправленное на адрес электронной почты, со ссылкой для сброса его / ее пароля. В ссылке есть защитный код вида? Code = "xxxx".
е. Пользователь открывает ссылку и вводит новый пароль, а затем нажимает кнопку отправки.
f. Моя страница меняет пароль пользователя.
Мой вопрос касается шага f. На шаге e, когда пользователь открывал ссылку, я мог проверить его код безопасности, а затем показать пользователю поля «новый пароль» и «подтвердить пароль». Но когда пользователь нажал кнопку отправки, как я мог узнать, что это настоящий запрос, отправленный пользователем, а не хакером? Возможно, я ошибаюсь, но я думаю, что хакер может легко смоделировать такие полевые данные, так как нет полей валидации.
Есть некоторые идеи, которые я могу придумать для проверки запроса на шаге f, но я не знаю, верны ли они. 1. Добавить зашифрованный файл cookie на шаге e и проверить его на шаге f? 2. Использовать переменную сеанса на шаге e и проверить ее на шаге f? 3. Добавьте скрытое поле на шаге e и проверьте его на шаге f?
Эти подходы приемлемы? Какой лучше, или есть лучше?
Заранее спасибо.