我正在使用许多 PHP 脚本,并且每个文件中都有数据库信息,包括数据库名称和密码。
我想保护这条信息,以确保没有人可以访问。
这些信息可以存储在一个单独的文件中,然后在需要时由 PHP 脚本读取。
我的问题是 - 我在哪里存储它,如何以及如何防止未经授权访问该文件?我也愿意接受其他建议,任何能以最好的方式保护密码的东西。
我正在使用许多 PHP 脚本,并且每个文件中都有数据库信息,包括数据库名称和密码。
我想保护这条信息,以确保没有人可以访问。
这些信息可以存储在一个单独的文件中,然后在需要时由 PHP 脚本读取。
我的问题是 - 我在哪里存储它,如何以及如何防止未经授权访问该文件?我也愿意接受其他建议,任何能以最好的方式保护密码的东西。
可能有一个更好的解决方案,但我将我的存储为 apache 环境启动的一部分(只能由服务器上的 root 读取)。如果您使用不同的服务器技术,您可以做同样的事情,或者做一些类似的事情。
#site.example.com
Include includes/credentials/site.conf
#includes/credentials/site.conf
<Directory /srv/www/html>
SetEnv DB_HOST "server"
SetEnv DB_USER "user"
SetEnv DB_PASS "passwd"
</Directory>
如果这对您有帮助,这还允许您控制每个目录的“凭据”。
在 php 中,您可以使用以下内容进行连接:
$pdo = new PDO("mysql:host=$_SERVER[DB_HOST]", $_SERVER['DB_USER'],
$_SERVER['DB_PASS']);
编辑:当您想连接到其他东西(如您自己的 mysql 实例)时,这也使您可以灵活地更改凭据。.htaccess
如果您可以控制它(可能是首选),您可以使用 a来覆盖或更改环境。