Verwendet microtime (), um Token zum Zurücksetzen von Passwörtern zu generieren?

In PHP ist mir aufgefallen, dass einige Frameworks die microtime () -Funktion verwenden, um Token zum Zurücksetzen von Passwörtern zu generieren, wie in:

  $token = md5(microtime());

Ist das ein Sicherheitsproblem? Wenn der Angreifer in der Lage ist, die Uhren mit dem Server bis zu einem gewissen Grad zu synchronisieren, kann er das Token brutal erzwingen. Für die 1-Sekunden-Synchronisation sind nur 1.000.000 Versuche erforderlich, und dies ist kein allzu verrücktes Problem.

Wie wahrscheinlich ist es, dass dieser Angriff erfolgreich ist? Sollte man stattdessen Token mit / dev / urandom oder openssl_pseudo_bytes () generieren? Ist microtime () eine schlechte Praxis?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage