Использование microtime () для генерации токенов сброса пароля - плохая практика

В PHP ямы заметили, что некоторые фреймворки используют функцию microtime () для генерации токенов сброса пароля, как в:

  $token = md5(microtime());

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

Какова вероятность успеха этой атаки? Следует ли генерировать токены с помощью / dev / urandom или openssl_pseudo_bytes ()? Является ли microtime () плохой практикой?

Ответы на вопрос(3)

Ваш ответ на вопрос