gpt4 book ai didi

php - 更改 php/mysql 数据库会创建不安全的连接吗?

转载 作者:太空宇宙 更新时间:2023-11-03 11:24:45 25 4
gpt4 key购买 nike

或者:“以这种方式更改 php/mysql 数据库是否会创建不安全的连接?”

我正在考虑自动化我的实时/测试数据库。我对 mysql 有点天真,所以我想我最好在这里问这个问题:

在以下 php/mysql 场景中会产生什么后果和/或安全问题?

// set up the standard database

// Connection codes:
$host="localhost";
$user="imauser";
$password="imapassword";
$dbname="liveDB";

$cxn = mysqli_connect ($host,$user,$password,$dbname)
or die ("Couldn't connect to the server.");

// check if $testMode is active, and reset $cxn with a new (test) $dbname:

if($testMode == TRUE){
$dbname="testDB"; // test database
// reset the cxn:
$cxn = mysqli_connect ($host,$user,$password,$dbname)
or die ("Couldn't connect to the server.");
}

这将允许我在代码的更高级别切换 $testMode。 $cxn 的简单覆盖是否有效,或者我是否会保留一个打开且事件的 mysqli_connect 连接?

最佳答案

最好将数据库凭据与代码分开。以防万一有人找到阅读您代码的方法,他们不应看到您的数据库密码。

将数据库凭据保存在配置文件中,您的应用程序会在启动时读取该文件。我会用 parse_ini_file() .

这是一个示例配置文件:

[database]
host=localhost
user=imauser
password=imapassword
dbname=liveDB

阅读方式如下:

$config = parse_ini_file('config.ini', true);

如果我输出 print_r($config),我会看到:

Array
(
[database] => Array
(
[host] => localhost
[user] => imauser
[password] => imapassword
[dbname] => liveDB
)

)

这样您就可以在测试和生产环境中部署相同的代码,而您只需要替换测试和生产服务器中的配置文件即可。

注意:确保您没有将您的配置文件放在 Web 服务器可以从中提供文件的目录下。您的 PHP 代码可以从服务器上的任何位置读取文件,因此请确保没有人可以简单地在浏览器中打开配置文件。

关于php - 更改 php/mysql 数据库会创建不安全的连接吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55404747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com