Używa microtime () do generowania tokenów resetowania hasła złą praktyką

W PHP zauważyłem, że niektóre frameworki wykorzystują funkcję microtime () do generowania tokenów resetowania hasła, jak w:

  $token = md5(microtime());

Czy to problem bezpieczeństwa? Jeśli atakujący jest w stanie zsynchronizować zegary z serwerem z pewną dokładnością, mogą brutalnie zmusić żeton. Synchronizacja 1-sekundowa będzie wymagać tylko 1 000 000 prób i nie jest to zbyt szalony problem.

Jak prawdopodobny jest sukces tego ataku? Czy zamiast tego należy generować tokeny za pomocą / dev / urandom lub openssl_pseudo_bytes ()? Czy zła praktyka microtime ()?

questionAnswers(3)

yourAnswerToTheQuestion