0

我正在使用许多 PHP 脚本,并且每个文件中都有数据库信息,包括数据库名称和密码。

我想保护这条信息,以确保没有人可以访问。

这些信息可以存储在一个单独的文件中,然后在需要时由 PHP 脚本读取。

我的问题是 - 我在哪里存储它,如何以及如何防止未经授权访问该文件?我也愿意接受其他建议,任何能以最好的方式保护密码的东西。

4

2 回答 2

2

可能有一个更好的解决方案,但我将我的存储为 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来覆盖或更改环境。

于 2013-03-06T12:16:38.713 回答
0

从维护的角度来看,在您的业务文件中包含数据库信息确实很危险。想想如果您将网站移动到新服务器,您需要做的工作量。

我建议使用数据访问对象模式

现在在你有这个 DAO 类的任何文件夹中,放置一个简单的 index.html,它在访问时会显示一个空白页面。Joomla 基于提供的基本原理使用此方法。

于 2013-03-06T12:17:53.313 回答