2013-09-11 2 views
1

В настоящее время меня попросили реализовать функцию «забытого имени пользователя» на сайте, который я унаследовал, и мне любопытно, что лучше всего подходит для процесса. Я уже придерживаюсь наилучшей практики для сброса пароля пользователя (отправив ссылку на истечение срока действия, одну ссылку на сброс), но, похоже, не существует какой-либо политики наилучшей практики для забытого имени пользователя.Лучшая практика - процесс «забытого пользователя»

Варианты, которые я видел на других сайтах, являются:

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

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

  3. Как и для 2, но объедините его с процессом смены пароля - если пользователь забыл свое имя пользователя, он увидит их имя пользователя, но ему также придется сбросить пароль.

таблица Пользователь не имеет какой-либо другой информации создать в нем (вопрос безопасности, дата рождения и т.д.) - так что я не могу попросить любого из этой информации, не добавляя его задним числом. Но я был бы признателен за любые советы или мнения других о том, как они либо реализовали это, или как они думают, что это должно быть реализовано :).

+0

Почему вам неудобно раскрывая имя пользователя? Пароль является секретным, поэтому, предположительно, это не проблема, чтобы сделать имя пользователя общедоступным? – troelskn

+0

Это был всего лишь случай, когда в наши дни было так много дел, связанных с веб-безопасностью, поэтому я действительно просто проверял надежность. У меня нет никаких проблем с отправкой имени пользователя в принципе - я просто хотел проверить, что я ничего не замечаю. – stevehayter

+0

Неплохой подход на самом деле - мне просто интересно, знаете ли вы что-то, чего я не знал. Как правило, я не помню, как секретная информация о имени пользователя. Тем не менее, некоторые сайты будут пытаться запутать, используется ли данное имя пользователя или нет (например, укажите критические сообщения об ошибках, если вы пропустили имя пользователя). – troelskn

ответ

3

Я не уверен, действительно ли это пример наилучшей практики.

Я предполагаю, что имя пользователя содержит встроенный в него адрес электронной почты? Большинство веб-сайтов, которые я видел обычно, просто просят ввести адрес электронной почты, который связан с учетной записью, и вы получите письмо, содержащее ваше имя пользователя.

Пользователь несет ответственность за защиту своих адресов электронной почты. Имя пользователя - это то, что является общественной информацией в большинстве случаев. Я не понимаю, почему вам нужно сосредоточиться на такой тайне.

То, что я хочу сделать, это ..

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

+0

Интересный способ его использования - я могу на самом деле предложить это как решение для клиента. Имя пользователя отображается в верхнем навигаторе после входа в систему, поэтому он существенно решает обе проблемы. – stevehayter

+0

Все ответы были полезны, но я считаю это ответом, как кажется более подходящим решением. – stevehayter

1

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

Я бы выбрал вариант 2 и 3 как излишний, если у вас нет ключевых бизнес-требований для его реализации.

+0

Это была моя мысль, но в наши дни большая часть большого дела, похоже, связана с веб-безопасностью, и я просто хотел проверить, что я ничего не пропустил. Нет бизнес-требований для 2 или 3 - просто проверка работоспособности. – stevehayter

0

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

Для более безопасного подхода вы можете реализовать некоторую многофакторную проверку.

Пример:

  1. На форме для открытия их имя пользователя обеспечивают их несколько входов (адрес электронной почты и DOB). Чем больше вы добавляете, тем более безопасным будет.

  2. Если эти входы правильные, задайте пользователю 2 или более вопросов безопасности. Не показывайте вопросы в виде выпадающих списков, покажите их как текст.

  3. Наконец, если ответы верны, то разрешите им входить в форму с их именем пользователя \ password.

** Для еще большей безопасности вставить шаг между 1 & 2, какие электронные письма случайный маркер пользователя, который они должны нажать, чтобы продолжить поток.

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

Эта статья обсуждает Забыли пароль, но я думаю, что это содержание применимо:

https://fishnetsecurity.com/6labs/resource-library/white-paper/best-practices-secure-forgot-password-feature

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