我们有一个开发服务器和一个实时服务器,具有不同的数据库连接详细信息(用户名、密码等).
目前,我们将数据库连接详细信息存储在initial.php中,如果存在定义语句,则 Select 其中一个.我们在活动服务器上手动添加该定义语句.
这是一个安全的方法吗?管理数据库连接安全性有哪些更好的/替代方法?
这样做的一个结果是每个开发人员都可以看到数据库连接详细信息,这有点冒险……
我们有一个开发服务器和一个实时服务器,具有不同的数据库连接详细信息(用户名、密码等).
目前,我们将数据库连接详细信息存储在initial.php中,如果存在定义语句,则 Select 其中一个.我们在活动服务器上手动添加该定义语句.
这是一个安全的方法吗?管理数据库连接安全性有哪些更好的/替代方法?
这样做的一个结果是每个开发人员都可以看到数据库连接详细信息,这有点冒险……
我用一个.ini文件,然后通过parse_ini_file(INI_FILENAME_HERE, true)
解析.
MySQL连接的示例.ini-file,使用PDO:
[db_general]
driver = "mysql"
user = "USERNAME"
password = "PASSWORD"
; DSN
; see http://www.php.net/manual/en/pdo.drivers.php
[db_data_source_name]
host = "localhost"
port = 3306
dbname = "DATABASE_NAME"
; specify PDO-options, provide keys without PDO::
; see http://www.php.net/manual/en/pdo.drivers.php
[db_pdo_options]
MYSQL_ATTR_INIT_COMMAND = "SET NAMES utf8"
; specify more PDO-attributes, provide keys without PDO::
; see http://php.net/manual/en/pdo.setattribute.php
[db_pdo_attributes]
ATTR_CASE = "PDO::CASE_LOWER"
ATTR_ERRMODE = "PDO::ERRMODE_EXCEPTION"
ATTR_EMULATE_PREPARES = false
因为不能在.ini-file-key中使用::
,所以在代码中使用constant('PDO::' . $iniKey)
来获得所需的PDO常量.