是的,它是(我认为)。
黑客可能会在 1 到 2 小时内猜出密码。(如果服务器使用限制可以进行多少重置,黑客可以通过使用僵尸网络或通过大量时间和大量试验来避免它。
如果我是你,我会添加静态盐。盐应该从配置(或其他安全的地方)加载。盐不应由服务器自己或任何人设置。它应该由真正的随机 API 生成(谷歌应该可以帮助你,但我猜 random.org 提供了一个)。
如果您无法使用该 API,那么伪盐应该会有所帮助,只要该死的人不知道服务器何时设置(或者服务器管理员有时可能会删除它,但不是自动的!)
例子:
$salt = null;
include('protectedDir/salt.php'); // Here should stand "$salt = ''"
if ($salt == null){
// Using real random api
file_put_contents('protectedDir/salt.php', '<?php \$salt = \'$salt\'; ?>)";
}
$resetKey = sha1(microtime() . $salt);
// 可能包含错误。未经测试。这只是一个示例,不应通过复制和粘贴来实现。
如果黑客可以访问 php 文件('protectedDir/salt.php')“源代码”,他也应该能够看到数据库配置。这将是一个更大的问题。