Существует обходной путь, который менее безопасен, чем сброс пароля, но работает, если требуется, чтобы пользователи отправляли пароль, а не ссылку для сброса.
Что вы делаете, вы генерируете новый пароль, которыйсодержит достаточно случайности, чтобы ее было трудно угадать, но она также отформатирована таким образом, чтобы ее было легко запомнить и прочитать (скажем, по телефону).
Что-то вроде: xyz - xyz - xyz - nnnn , где xyz - простое, но необычное слово и nnnn - это четырехзначное число.
Затем настройте его так, чтобы это был временный пароль, который необходимо изменить при первом входе в систему.
Установите пароль, используя ту же логику, что и дляустановите нормальный пароль, чтобы он был правильно засолен и хеширован, а затем отправьте пароль в виде открытого текста по электронной почте, например, так:
Уважаемый Фамилия, Фамилия,
Вы просили, чтобы мы сбросили вашпароль.
Ваш новый пароль:
insipid-mirth-nonplus-9174
Вы сможете войти в систему один раз, используя этот пароль, затем вам нужно будет ввести новый пароль.
Важные предупреждения
Эта система имеет ряд серьезных уязвимостей, которые делают ее непригодной для веб-сайтов, где безопасность данных имеет решающее значение.Их больше, но я знаю, о которых я могу думать:
- В отличие от систем, в которых используется ссылка для сброса пароля, эту систему можно использовать для блокировки кого-либо из системы (при условии, чтоВы используете его как есть), если только вы не потребуете от кого-то заполнить идентифицируемую информацию перед выполнением сброса пароля или отправите сообщение «Вы уверены, что хотите сбросить пароль?»сначала электронная почтаЭто будет означать, что они нажимают на ссылку с GUID, которая идет на сервер;в этот момент их также можно отправить в форму для сброса пароля.
- Поскольку пароль отправляется в виде простого текста по электронной почте, существует опасность его перехвата и использования пароля.Хотя, честно говоря, это не сильно отличается от риска отправки ссылки для сброса пароля.
- Если вы игнорируете риски на шаге № 1 и не используете достаточно случайный способ генерации паролей (скажем,вы используете список слов, состоящий из менее чем 1000 элементов), кто-нибудь, взломавший ваш сервер, сможет получить хэш с посоленным паролем, а затем написать алгоритм, который генерирует все возможные пароли и проверяет их на соответствие хешированному паролю.Не такая большая проблема, если вы используете криптографически сложный алгоритм хеширования.