在PHP中,我注意到一些框架利用microtime()函数生成密码重置令牌,如下所示:
$token = md5(microtime());
Run Code Online (Sandbox Code Playgroud)
这是安全问题吗?如果攻击者能够将时钟与服务器同步到一定程度的准确度,他们就可以强制使用令牌.1秒同步只需要1,000,000次尝试,这不是一个问题的疯狂.
这次攻击有多大可能成功?是否应该使用/ dev/urandom或openssl_pseudo_bytes()生成令牌?microtime()是不好的做法?