Проблема безопасности сброса пароля Django? - PullRequest
0 голосов
/ 11 марта 2019

Возможно, я обнаружил дыру в безопасности в структуре аутентификации Django для сброса паролей.

При использовании django.contrib.auth представлений форма сброса пароля запрашивает только электронное письмо, ожидая, что это адрес электронной почты зарегистрированной учетной записи, запрашивающей сброс пароля.Однако я могу ввести адрес электронной почты любой зарегистрированной учетной записи и отправить ссылку для сброса пароля на это письмо.Если я открою ссылку в этом письме и введу новый требуемый пароль, изменится на пароль для учетной записи, зарегистрированной для этого письма, а не для учетной записи, которая ввела этот адрес электронной почты .

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

Существует ли способ проверить, введен ли введенный адрес электронной почты длясброс пароля - это фактически электронная почта пользователя, запрашивающего сброс?Если нет, есть ли лучший, более безопасный способ обработки запросов на сброс пароля?

...