如何保护 SQL 密码


How to Secure Sql Password

我在我的应用程序中使用 SQL,所以我创建了 php 站点来管理它。问题是mysqli_connect所需的密码是主服务器的密码(所有文件管理器,MySQL等)。保护我的密码的最佳方法是什么(从应用程序发送密码或在 PHP 源文件中明确删除密码)。其他建议?

有很多方法,但一般来说:把它放在webroot之外的文件中,或者放在一个从外面无法读取的文件中。 即执行的PHP文件不会公开其源代码。

如果您使用的是Apache,则可以将其存储在名为.htsomething的文件中,因为默认情况下,Apache会阻止访问以.ht*开头的任何文件

您可以将其存储在名为 secret.txt 的文件中,并通过添加 .htaccess RewriteRule 来阻止对它的访问。

对于我的项目,我将设置存储在 webroot 之外的 JSON 文件中。此方法的一个主要优点是其他应用程序(如部署或监视工具)可以读取并轻松生成此设置文件。而且它也很干净,你不能用 JSON 做任何编程。

首先:为您的应用程序创建一个新帐户,仅具有应用程序所需的权限!

第二:将文件放在系统上的某个位置,尽可能锁定。您可以采取一些措施来进一步混淆密码,但最终您将获得一个明文,可用于返回数据库凭据。所以要清楚:

  1. 使用具有运行应用所需的最低权限的数据库帐户。
  2. 尽可能管理保存密码的配置文件的安全性(只有运行服务的用户和管理员才能访问),将其保留在 webroot 之外。
  3. 刚刚刷新了另一个答案 - @FritsVanCampen的建议也死了。