您将数据库连接的连接设置(如主机、数据库名称、用户、密码)放在哪里?它是放在数据库类或文件中,还是放在配置文件之外,还是放在其他地方?
问问题
5553 次
4 回答
5
理想情况下,您应该将它放在一个配置文件中,该文件可以像 PHP 数组一样简单。
例如:db_config.php
$db_config = array(
'host' => 'localhost',
'user' => 'username',
'password' => 'qwerty'
);
然后,您应该将此文件放在文档根目录之外,以获得最大的安全性。这样,如果您的虚拟主机失败并开始将 PHP 文件作为文本文件提供(发生),则没有人可以获取您的数据库凭据。
于 2012-11-11T06:27:31.543 回答
3
它可以通过多种方式完成,但常见的是将其放在设置文件中,并将该文件保存在 webroot 之外,这样有关数据库密码的信息就不会意外泄漏到网络中。
于 2012-11-11T06:27:06.683 回答
2
对于 PostgreSQL,我真的很喜欢使用pg_service.conf
. 它允许我将所有连接特定设置(主机名、数据库名称、用户名、密码等)放入~/.pg_service.conf
或放入/etc/postgresql-common/pg_service.conf
并给它们通用名称(服务名称)。
现在,任何想要连接到数据库的程序(Perl、PHP 等)都可以简单地指定"service=name"
为它们的连接字符串——漂亮、干净、安全且易于维护。
据我所知,MySQL 对~/my.cnf
or/etc/my.cnf
文件有类似的机制——你可能想研究一下。
于 2012-11-11T07:02:07.300 回答
1
有很多方法可以做到这一点,但我通过定义 CONSTANTS 来做到这一点:
Create a config/db.php
<?php
define('DB_INFO','mysql:host=localhost;dbname=test');
define('DB_USER','root');
define('DB_PASS','');
于 2012-11-11T06:47:41.173 回答