Сброс пароля электронной почты — подтвердить членство до или после?

Процесс работает так.

  1. Если вход в систему не удается 5 раз, они должны сбросить пароль и отправляются на страницу сброса пароля.
  2. Пользователь вводит адрес электронной почты
  3. Ссылка отправляется на указанный адрес электронной почты. Токен, электронная почта и время записывается.
  4. Вернувшись на сайт, если токен действителен, проверяется база данных, чтобы узнать, является ли адрес электронной почты действительным участником.
  5. Если они являются участниками, то сброс пароля продолжается, иначе они зашли в тупик.

Но после получения этого письма мне интересно, должен ли я проверить, связан ли адрес электронной почты с реальной учетной записью участника или нет, прежде чем отправлять письмо.

Так что это мой вопрос, должен ли я проверять как до, так и после, или достаточно после их возвращения на сайт? Последствия?

-1

Решение

  • Пользователь отправляет несколько раз неверные данные для входа

Не делайте предположений

Вам следует не делать предположения, если password был неправ или это было на самом деле username — вы также не должны уведомлять пользователя о точной ошибке (по соображениям безопасности. Не.).

Позвольте пользователю понять это:

Имя пользователя или пароль неверны.
Нужна помощь?
Я забыл свой имя пользователя Я забыл свой пароль

  • Если щелкнуть один из вышеупомянутых (всплывающее это 🙂

Ваш адрес электронной почты: _________________ Отправьте мне ссылку для сброса [пароль / имя пользователя]

  • Проверьте в БД, если отправленное письмо действительно существует!
    (Даже не думайте об отправке сброса ссылок на электронные письма, которых нет в вашем реестре!)
  • Адрес электронной почты существует? Создать Сбросить запись в БД для этой учетной записи и отправьте ссылку на сброс на электронную почту вашего пользователя.
  • Электронная почта не существует? Какая разница! За причины безопасности вы должны отобразить то же самое успех сообщение! (Вы не хотите, чтобы злоумышленники играли в угадайку? До вас.)

Вскоре вы получите электронное письмо со ссылкой для сброса [theEnteredEmail],
Не получили Reset Email? Отправить

(Необязательный) Не блокируйте аккаунт с этой точки зрения. Держите это доступным. Если у вас есть Активный сброс записи Вы можете стереть его, если пользователь успешно обращается к своему профилю со «старыми» данными. Пользователь может быть усталым или просто немного старым, он может немного запомнить данные своей учетной записи — и может не захотеть ничего сбрасывать, и может захотеть игнорировать электронную почту Reset-Link.

Неудачные попытки пароля

Льготное время Блокировка / защита аккаунта только если вы заметили большое количество последовательных неудачных попыток. Создайте журнал БД для этого конкретного случая.
Если username существует в вашей БД, но неверные пароли → отправить отдельное уведомление на соответствующий Email профиля пользователя со всеми данными, которые вы собрали из журнала

Привет [user], [day/time] мы зарегистрировались [n] неудачные попытки входа в вашу учетную запись:
[logFile]
(п серьезность = высокая) Мы заблокировали / заблокировали ваш аккаунт. Пожалуйста, перейдите по этой ссылке, чтобы разблокировать свой профиль. [unlockProfileLink]
(п серьезность = низкая) Чтобы сделать вашу учетную запись более безопасной, используйте надежный пароль (Здесь вы можете предложить ссылку на пароль для отдыха)


Пользователь действительно старческий,

открывает свою электронную почту и следует за сбросить ссылку:

  • Проверьте, действительно ли Ссылка Reset-Link для этой учетной записи.
  • Действительно? Создать временную сессию

(Вы должны быть в состоянии распознать учетную запись пользователя по ссылке URL-адрес, который связывает с тем, что срок действия учетной записи «открыт» истекает Сбросить запись маркер)

Привет [user]
Ваш новый [имя пользователя / пароль]: _____________
Повторите [имя пользователя / пароль]:     _____________ ОБНОВЛЕНИЕ [имя пользователя / пароль]

  • При отправке проверьте, если временный сеанс или токен не истек а также оба поля совпадают.
  • Если реферер соответствует временному Сбросить запись (токен), связанный с учетной записью — изменить пароль / или / имя пользователя.

  • Успех? Пользователь по-прежнему должен правильно войти в систему со страницы входа!

Ваш [username/password] сейчас обновляется. Вскоре вы получите подтверждение по электронной почте.

Авторизоваться:
Имя пользователя: _________
Пароль:  _________ АВТОРИЗОВАТЬСЯ

  • Успех? Аутентифицировать сеанс входа
  • Потерпеть поражение? Повторить сверху 🙂
2

Другие решения

РЕДАКТИРОВАТЬ:
В случае, если вы не являетесь поставщиком учетной записи электронной почты:

Вы должны обязательно проверить, является ли адрес электронной почты действительным, прежде чем отправлять письмо. Токен, который вы отправляете, всегда должен быть связан с реальным аккаунтом. В противном случае можно было бы изменить пароль любой учетной записи, которую вы пожелаете. Итак, мое предложение:

  1. Пользователь вводит адрес электронной почты
  2. Бэкэнд проверяет, существует ли этот адрес электронной почты (который пользователь сообщил вам при создании своей учетной записи). Если да, то сгенерируйте токен и свяжите его с учетной записью. Если нет, тупик.
  3. Отправьте токен на адрес электронной почты. Пользователь может щелкнуть по нему, убедиться, что он является владельцем этого адреса электронной почты (и этой учетной записи тоже) и может изменить свой пароль.

Если вы выступаете в качестве поставщика учетной записи электронной почты, вы можете отправить ему токен на второй адрес электронной почты, который пользователь сообщил вам при регистрации своей учетной записи. Лучшим решением было бы отправить ему токен через текстовое сообщение или по почте.

0

По вопросам рекламы [email protected]