如何使用数据库密码?

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": ""
     }
}

克隆后,您只需重命名文件并添加凭据。