2013-04-15 2 views
5

Насколько я могу судить, есть два разумных способа сброса забытого пароля пользователя.Лучшая практика для сброса забытых паролей пользователей

  1. Укажите, где пользователь вводит свой адрес электронной почты, и на их адрес электронной почты отправляется новый пароль открытого текста.

  2. Ссылка на этот адрес электронной почты, адрес которой указан в URL-адресе. При нажатии на это пользователь получает форму на веб-сайте, где они могут выбрать собственный пароль.

Какой способ является предпочтительным и почему?

Если используется метод 1, возможно, третье лицо может прочитать электронное письмо и получить новый пароль. Если используется метод 2, то каким образом кто-то будет методично проходить через коды UID, чтобы попытаться получить доступ к форме, чтобы изменить пароль пользователя?

+0

И как мы обрабатываем эту ссылку, если мы идем со вторым способом. Я вызываю забытый пароль из приложения iOS и используя API FRAPI (www.getfrapi.com). Когда пользователь нажал на эту ссылку почты, как мы обрабатываем URL этой почты? через API или нам нужен внешний сервер? Мне нужна помощь. – Ponting

+0

Возможный дубликат [Забыли пароль: что является лучшим методом реализации функции забытого пароля?] (Https://stackoverflow.com/questions/522967/forgot-password-what-is-the-best-method-of- реализация-a-forget-password-funct) – OhadR

ответ

23

Лучший рисунок будет:

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

  2. Вы генерируете запись в новой таблице базы данных с идентификатором пользователя, даты и времени запроса (= текущий DateTime), и GUID вы просто генерируемой

  3. вы отправить почту пользователю, указывая на страницу сброса пароля с идентификатор GUID (не идентификатор пользователя) в качестве параметра

  4. об этом страницы, вы должны проверить, что GUID существует, и в конце концов, вы могли бы поставить некоторую дату истечения срока действия (= пользователь 1 день сбросить, к примеру)

  5. Не забудьте пометить запись как «б» (с дополнительным полем в таблицы), когда пользователь сбросить свой пароль, так что вы можете остановить возможную вторую попытку ...

Он мог бы, возможно, даже более безопасным, но это уже довольно хорошо я думаю ....

+0

И как мы обрабатываем эту ссылку, если мы идем со вторым способом. Я вызываю забытый пароль из приложения iOS и используя API FRAPI (www.getfrapi.com). Когда пользователь нажал на эту ссылку почты, как мы обрабатываем URL этой почты? через API или нам нужен внешний сервер? Мне нужна помощь. – Ponting

+0

Просто задайте свой вопрос, совершенно непонятно, что вы делаете ... –

+0

Но вы должны понимать, что электронное письмо всегда должно быть вторым способом общения в этих ситуациях, поскольку пользователь может не иметь доступа к электронной почте или письмо не будет действительным вообще. Я бы рекомендовал вам прочитать [это] (http://www.fishnetsecurity.com/6labs/resource-library/white-paper/best-practices-secure-forgot-password-feature) и получить хорошее сочетание способов для обеспечения процедуры перепродажи пароля. –

7

OWASP имеет хороший контрольный список https://www.owasp.org/index.php/Forgot_Password_Cheat_Sheet

Вот краткий обзор шагов:

  1. Собрать Идентичность данных или безопасности Вопросы
  2. Проверка Вопросы безопасности
  3. Отправить токен За боковым каналом
  4. Разрешить пользователю изменить пароль
0

Проверьте, является ли отправитель реальным пользователем, задавая вопросы проверки.

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

Не добавляйте слово «пароль» в заголовок или тело письма.

Обязательно отправьте отдельно имя пользователя и пароль.

Для Office 365 пользователей, направить их к забыл свой пароль области или отправить эту ссылку https://passwordreset.microsoftonline.com

Не пугается пользователем, нагнетать ИТ менеджера, если возникнет необходимость.

Смежные вопросы