Защита временных паролей, отправляемых по электронной почте пользователям? - PullRequest
1 голос
/ 26 октября 2009

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

Ответы [ 3 ]

4 голосов
/ 26 октября 2009

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

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

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

2 голосов
/ 26 октября 2009

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

0 голосов
/ 26 октября 2009

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

...