пользователи забывают пароли, и (почти) все места членства нужен способ, чтобы помочь пользователям получить обратно вОграниченные по времени или одноразовые маркеры сброса пароля?
Я хотел бы реализовать общий сценарий:.
- Пользователь ударяется сайт, пытается войти в систему в, не может, и понимает, что они забыли пароль - дерьмо!
- Пользователь вводит адрес электронной почты и щелкает «забыли пароль»
- Пользователь получает электронное письмо со ссылкой для сброса пароля
Вот как я планирую осуществить это (C#/ASP.NET MVC):
- Когда пользователь вводит электронную почту и удаляет «забытый пароль», мой сайт будет генерировать GUID, хранить его на объекте участника в БД (
member.ResetToken
) и отправлять им ссылку с этим GUID в URL-адресе что они могут использовать эту ссылку только один раз) - Пользователь нажимает на ссылку, и мой сайт просматривает свою учетную запись на основе этого
member.ResetToken
с URL-адреса. Если их учетная запись найдена, покажите им форму сброса пароля, и когда они завершат сброс, она очищаетmember.ResetToken
от их учетной записи.
Вот мой вопрос: сохраните его так (в котором они могут сбросить свой пароль с помощью этой ссылки в любое время, сейчас или в будущем) или добавить временную метку, чтобы ограничить, как долго они должны сбросить свой пароль?
С точки зрения UX возможность сброса пароля каждый раз, когда вы готовы, отлично, но я хочу убедиться, что я не буду забывать о некоторых проблемах безопасности, которые могут возникнуть.
Создайте запрос на сброс и отправьте его по электронной почте и ограничьте время, но не изменяйте пароль. Изменяя пароль и отправляя сброс, легко взорвать пароль someons :) –
Это не то, что я описал. ;) Пароль изменен пользователем. URL-адрес с маркером сброса пароля отправляется по почте, когда они нажимают кнопку «забыл пароль». GUID - это токен сброса пароля (хотя я, вероятно, не буду использовать GUID, но что-то более случайное). Я спрашиваю, является ли одноразовый токен достаточно безопасным в сравнении с использованием токена с ограниченным временем. Спасибо хоть. – Chaddeus
Да, я понял, что вы говорите, проверьте мой ответ. –