Хранение токена сброса пароля - нужно ли хэшировать значения? - PullRequest
0 голосов
/ 30 января 2019

это может быть очень простой вопрос.

Я использую токен, сгенерированный из bin2hex () для пользователя, чтобы сбросить свой пароль.Этот токен хранится как есть в БД, и когда пользователь использует его, его токен ищется по сравнению с тем в БД, и если они совпадают, они могут сбросить свой пароль.Я читал здесь ( PHP - Как реализовать сброс пароля и срок действия токена ), что я должен хешировать пароль перед хранением.Это кажется хорошей идеей, но мне было интересно, как я буду искать по хешированному паролю, нужно ли мне также включать имя пользователя / адрес электронной почты в URL-адрес на основе токена, который отправляется пользователю, чтобы их можно было искать снова итогда хешированный токен проверяется?Можно ли добавить очевидный идентификатор в ссылку сброса (я полагаю, это потому, что он отправлен на их адрес электронной почты).

Спасибо,

Martyn

1 Ответ

0 голосов
/ 30 января 2019

Да, вы должны хешировать токены сброса пароля, потому что

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

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

Ключевые моменты:

Если ваш токен имеет достаточную энтропию, допустим, 20 случайных символов 0-9 az AZзатем вы можете рассчитать несоленый быстрый хеш (например, SHA-256 или SHA-512) и сохранить его.Это безопасно, потому что невозможно успешно перебрать такие надежные «пароли».Соль делается, потому что пароли, выбранные людьми, часто являются относительно слабыми, потому что их необходимо запомнить.

Если «токен сброса пароля» позволяет кому-либо сбросить пароль с другой информацией в виде открытого текста, то это фактическитакой же, как пароль, и должен рассматриваться как таковой .Заставьте их истечь на несколько минут или часов и относитесь к ним как к секретам, потому что они есть.

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...