Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.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 在GitHub上的repo上保存服务器凭据:建议_Php_Git_Github_Passwords_Config - Fatal编程技术网

Php 在GitHub上的repo上保存服务器凭据:建议

Php 在GitHub上的repo上保存服务器凭据:建议,php,git,github,passwords,config,Php,Git,Github,Passwords,Config,从wev developer的角度考虑,这是一个公共运行站点,其代码将公开,但站点上的一些数据事务是通过php到MySQL服务器进行的 像这样的代码通常是 <?php $servername = "localhost"; $username = "username"; $password = "password"; // Create connection $conn = new mysqli($servername, $username, $password); // Check

从wev developer的角度考虑,这是一个公共运行站点,其代码将公开,但站点上的一些数据事务是通过php到MySQL服务器进行的

像这样的代码通常是

 <?php
$servername = "localhost";
$username = "username";
$password = "password";

// Create connection
$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?> 

放置在用于启动连接的文件
connect.php

  • 防止公众通过GitHub public repo访问此文件内容的最佳方法是什么

  • 如果使用in case
    .gitignore
    从repo中删除文件,我们仍然可以使repo与web服务器的服务目录保持同步


  • 想知道推荐的方法。您从错误的角度处理此问题。解决方案是永远不要将机密信息放入Git或任何其他VCS中

    不要硬编码用户名和密码。将其包含在变量中的全部原因是,这些详细信息应该是可变的,并且来自文件外部

    一般建议采用两种做法:

  • 在环境变量中存储用户名和密码。在PHP中使用环境变量非常简单,它可以确保这些值在您的VCS之外
  • 将用户名和密码存储在web根目录之外的配置文件中。配置文件可以是PHP文件或INI文件。重要的是不要将其包含在VCS中,也不要将其放在可以从互联网访问的地方。然后,您可以包含该文件或使用以获取配置设置。如果可以,还可以将其包含在虚拟主机配置文件中 另一方面:

    您的代码容易受到凭据泄漏的影响。永远不要手动检查MySQLi连接错误。请阅读

    使用MySQLi连接的正确方法如下:

    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    $mysqli = new mysqli('localhost', $env_dbusername, $env_dbpassword, 'db_test');
    $mysqli->set_charset('utf8mb4'); // always set the charset
    

    如果可以,避免使用MySQLi,而是使用PDO

    能否为上述两个选项添加文档链接。我不知道上述技术。(我硬编码!!)mysqli文档糟糕透顶。我不建议依赖它。这里写着一点:这里