如何使用数据库密码?
How to use database password?
我对 php 很陌生。目前我正在做一个项目,应该从数据库服务器获取数据,然后将其返回给客户端。我有这个小代码片段:
<?php
$host_name = 'host';
$database = 'db';
$user_name = 'user';
$password = 'passwd';
$link = new mysqli($host_name, $user_name, $password, $database);
if ($link->connect_error) {
die('<p>Connection failed</p>');
} else {
echo '<p>Connection success.</p>';
}
?>
丑陋的部分是,密码是写在源代码中的。当使用 gitlab 或类似的东西时,密码总是被上传 - 在每个软件版本中。这(当然)是一个巨大的安全风险。我怎样才能使它更安全?将密码存储在文件中并使用 php 读取文件以获取数据库密码 - 这是一个好的解决方案吗?
为此,您可以使用 Laravel 之类的框架,但这将是您开发中的重大变化。
Laravel 所做的是生成一个 .env
文件。此文件包含所有应用凭据(数据库、邮件等)。您也可以这样做:制作一个不在您的 git 中的文件(将其添加到您的 .gitignore
)(例如 JSON 文件)。
当您克隆存储库时,您只需创建此文件。
例如,一个名为 credentials.json
的 JSON 文件:
{
"database": {
"login": "your-login",
"password": "your-secret-password"
}
}
您可以使用 PHP.
轻松阅读 JSON 文件
显然,您必须管理您的 .htaccess
才能使该文件从外部无法读取。
注意: 您可以在 git 存储库中添加一个空白文件以保留 JSON 文件结构,而无需 [=16] 中的凭据=]:
{
"database": {
"login": "",
"password": ""
}
}
克隆后,您只需重命名文件并添加凭据。
我对 php 很陌生。目前我正在做一个项目,应该从数据库服务器获取数据,然后将其返回给客户端。我有这个小代码片段:
<?php
$host_name = 'host';
$database = 'db';
$user_name = 'user';
$password = 'passwd';
$link = new mysqli($host_name, $user_name, $password, $database);
if ($link->connect_error) {
die('<p>Connection failed</p>');
} else {
echo '<p>Connection success.</p>';
}
?>
丑陋的部分是,密码是写在源代码中的。当使用 gitlab 或类似的东西时,密码总是被上传 - 在每个软件版本中。这(当然)是一个巨大的安全风险。我怎样才能使它更安全?将密码存储在文件中并使用 php 读取文件以获取数据库密码 - 这是一个好的解决方案吗?
为此,您可以使用 Laravel 之类的框架,但这将是您开发中的重大变化。
Laravel 所做的是生成一个 .env
文件。此文件包含所有应用凭据(数据库、邮件等)。您也可以这样做:制作一个不在您的 git 中的文件(将其添加到您的 .gitignore
)(例如 JSON 文件)。
当您克隆存储库时,您只需创建此文件。
例如,一个名为 credentials.json
的 JSON 文件:
{
"database": {
"login": "your-login",
"password": "your-secret-password"
}
}
您可以使用 PHP.
轻松阅读 JSON 文件显然,您必须管理您的 .htaccess
才能使该文件从外部无法读取。
注意: 您可以在 git 存储库中添加一个空白文件以保留 JSON 文件结构,而无需 [=16] 中的凭据=]:
{
"database": {
"login": "",
"password": ""
}
}
克隆后,您只需重命名文件并添加凭据。