是否有一种方法来存储php mysqli登录的散列密码



我通常这样做

$password = "password";
$mysqli = new mysqli("localhost", "root", $password, "database");

是否有办法给mysqli一个散列密码,而不是保存在我的脚本中存储的明文形式?有没有一种好的做法来避免在我的脚本周围使用明文密码?这安全吗?

我知道它不会是100%的证明,但它确实使它稍微麻烦没有明文可用?

不;这就违背了使用密码散列的初衷。如果您可以使用散列密码登录,那么散列密码本质上就是您的密码。

你可以加密它,但解密的密钥也必须存储在某个地方,所以你只是混淆了密码,而不是保护它。任何想要的人都可以很容易地找到它,如果他有权限访问您的脚本文件。

最终,您必须对服务器自己的文件系统的安全性给予一定的信任。最好的办法是确保它存储在文档根目录之外,并且服务器上不需要读取它的任何用户/组都无法读取。

遗憾的是,没有。作为密码发送的任何内容都是密码。即使您要创建一个小函数来散列您的密码,您仍然必须拥有纯文本形式的密码。即便如此,散列后的密码仍然是你的密码(就像你在MySQL中设置的那样),因此它仍然是纯文本。

由于PHP是服务器端脚本,没有人可以看到这个密码,也没有它被传输到客户端,所以它不能被拦截。我建议使用一个难以猜测的密码,并确保脚本不受MySQL注入的保护,这样就没有人可以通过该路由访问您的数据库。

最新更新