0

目前,我将 config.php 文件include folder 放在我的 Apache 服务器上,这样我就可以轻松访问该文件,而无需编写目录路径。我认为这是一个好主意,因为它是安全的,并且无法从公共根文件夹外部访问。

我从来没有被告知如何创建config.php文件,所以我即兴创作,但似乎它可能以错误的方式完成......(现在不那么安全)。然后我开始搜索有关如何以正确方式构建这些配置文件的教程,但是每个教程都有自己的方法。有些是通过使用数组来实现的。有些是通过定义配置变量来实现的。其他人通过使用类..可能没有正确的方法,但我想要一个安全且功能强大的系统来工作,而且我真的不在乎它有多先进..

这是我当前的配置文件。你应该很容易看到它在任何方面都不是那么安全,因为任何人都可能只能回显变量然后读取连接。

<?
$main_host = 'db01.server.local'; // There may be db02, db03 etc.
$main_psw = '********';
$main_host_end = '.server.local'; // makes it possible for me to connect to a different datastore only knowing the subdomain.

// ***    USERS    *** //
$w_user = 'w_user';
$xr_user = 'xr_user';
$r_user = 'r_user';
$w_server = 'w_server';
$w_db_admin = 'dbw_admin';

// ***    DATABASES    *** //
$db_accounts = 'accounts';
$db_server = 'server_setup';

// ***    DB ACCOUNTS    *** //
try {
    $w_accounts = new PDO("mysql:host=$main_host;dbname=$db_accounts", $w_user, $main_psw);
    $w_accounts->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}

try {
    $r_accounts = new PDO("mysql:host=$main_host;dbname=$db_accounts", $r_user, $main_psw);
    $r_accounts->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}

// ***    DB SERVER SETUP    *** //
try {
    $w_server = new PDO("mysql:host=$main_host;dbname=$db_server", $w_user, $main_psw);
    $w_server->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}

try {
    $r_server = new PDO("mysql:host=$main_host;dbname=$db_server", $r_user, $main_psw);
    $r_server->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}


?>

所以..直接问这个问题。创建 config.php 文件的正确方法是什么?我真的也希望其他人会发现这很有用。

编辑我还应该提到这可能不是全部..我可能还有更多的联系要建立..不仅是accountsserver_setup

4

2 回答 2

0

如果有人在您的项目中编写您不信任的代码,那么无论如何您都会遇到大麻烦。因此,不必担心回显变量。因此,您唯一关心的是如何保护您的 PHP 配置免受通过 Web 浏览器访问它们的人的影响。为此,我建议将所有配置文件放入configs/目录并添加.htaccess具有以下内容的文件:

Options -Indexes
<FilesMatch .*\.php$>
  order deny,allow
  deny from all
</FilesMatch>
于 2013-02-08T10:27:01.263 回答
0

首先,永远不要在生产环境中回显异常消息,而是将它们放入可读的日志文件中。

如果您查看许多 MVC 框架,它们的 php 配置文件仅包含一个数组,该数组在文件末尾返回。

限制对这些配置文件的访问可以通过 .htaccess 和“拒绝所有”来完成

于 2013-02-08T10:17:45.540 回答