Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用数据库密码?_Php_Passwords - Fatal编程技术网

Php 如何使用数据库密码?

Php 如何使用数据库密码?,php,passwords,Php,Passwords,我对php非常陌生。目前我正在从事一个项目,从数据库服务器获取数据,然后返回到客户机。我得到了这个小代码片段: <?php $host_name = 'host'; $database = 'db'; $user_name = 'user'; $password = 'passwd'; $link = new mysqli($host_name, $user_name, $password, $database); if ($link->connect_er

我对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所做的是生成一个
.env
文件。此文件包含所有应用程序凭据(数据库、邮件等)。您也可以这样做:创建一个不在git中的文件(将其添加到
.gitignore
)(例如JSON文件)。 克隆存储库时,只需创建此文件

例如,名为
credentials.JSON的JSON文件:

{
    "database": {
         "login": "your-login",
         "password": "your-secret-password"
     }
}
{
    "database": {
         "login": "",
         "password": ""
     }
}
您可以使用PHP轻松读取JSON文件

显然,您必须管理
.htaccess
,才能从外部读取此文件

注意:您可以在git存储库中添加一个空白文件,以保留JSON文件结构,而不使用
凭据示例中的凭据。JSON

{
    "database": {
         "login": "your-login",
         "password": "your-secret-password"
     }
}
{
    "database": {
         "login": "",
         "password": ""
     }
}
克隆后,您只需重命名文件并添加凭据