Защита временных паролей, отправляемых по электронной почте пользователям?

StackOverflow https://stackoverflow.com/questions/1625976

  •  06-07-2019
  •  | 
  •  

Вопрос

У меня есть простое веб-приложение, в котором администраторы могут создавать пользователей. Пользователи не создают себя. Все, что нужно сделать администратору, это ввести имя пользователя, адрес электронной почты и временный пароль, отправленный пользователю для входа в систему. Это электронное письмо отправлено в текстовом формате. Если пользователь входит в систему в первый раз, он должен изменить свой пароль и ввести секретный вопрос и ответ. Очевидно, что пользователь должен знать свой временный пароль, чтобы войти в систему в первый раз, и это единственный способ, которым я знаю, сообщить ему об этом (по электронной почте). Другой вариант - администратор позвонит пользователю и сообщит ему по телефону или лично его временный пароль, но это непрактично. Как я могу справиться с такой ситуацией?

Это было полезно?

Решение

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

Когда они щелкают по ссылке, просматривают приглашение и проверяют, существует ли оно и не использовалось - тогда разрешите им установить свой пароль и аннулировать приглашение.

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

Другие советы

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

Вы можете сгенерировать пользовательский URL с паролем и хешем пользователя в качестве аргумента, где пользователь должен войти в систему сам. Хеш будет трудно получить, если у злоумышленника нет информации

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top