在 GitHub 上的回购中保存服务器凭据:建议
Saving server credentials on repo on GitHub : Recommendations
从wev开发者的角度考虑,一个public运行网站,其代码要制作public,但网站上的一些数据交易是通过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
中。
什么是防止 public 通过 GitHub public 存储库访问此文件内容的最佳方法。
如果 .gitignore
用于从 repo 中删除文件,我们是否仍然可以使 repo 与 web 服务器的服务目录保持同步。
想知道推荐的方法是什么。
您从错误的角度来解决这个问题。解决方案是永远不要将机密信息放入 Git 或任何其他 VCS。
不要对用户名和密码进行硬编码。将其放在变量中的全部原因是因为这些详细信息应该是可变的并且来自文件外部。
通常推荐两种做法:
- 将用户名和密码存储在环境变量中。在 PHP 中使用环境变量非常简单,它确保这些值在您的 VCS 之外。
- 将用户名和密码存储在 Web 根目录之外的配置文件中。配置文件可以是 PHP 文件或 INI 文件。重要的是不要将它包含在 VCS 中,也不要将它放在可以从 Internet 访问的地方。然后您可以包含该文件或使用
parse_ini_file()
来获取配置设置。如果可以,您还可以将其包含在虚拟主机配置文件中。
另一个注意事项:
您的代码无论如何都容易受到凭据泄漏的影响。切勿手动检查 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。
从wev开发者的角度考虑,一个public运行网站,其代码要制作public,但网站上的一些数据交易是通过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
中。
什么是防止 public 通过 GitHub public 存储库访问此文件内容的最佳方法。
如果
.gitignore
用于从 repo 中删除文件,我们是否仍然可以使 repo 与 web 服务器的服务目录保持同步。
想知道推荐的方法是什么。
您从错误的角度来解决这个问题。解决方案是永远不要将机密信息放入 Git 或任何其他 VCS。
不要对用户名和密码进行硬编码。将其放在变量中的全部原因是因为这些详细信息应该是可变的并且来自文件外部。
通常推荐两种做法:
- 将用户名和密码存储在环境变量中。在 PHP 中使用环境变量非常简单,它确保这些值在您的 VCS 之外。
- 将用户名和密码存储在 Web 根目录之外的配置文件中。配置文件可以是 PHP 文件或 INI 文件。重要的是不要将它包含在 VCS 中,也不要将它放在可以从 Internet 访问的地方。然后您可以包含该文件或使用
parse_ini_file()
来获取配置设置。如果可以,您还可以将其包含在虚拟主机配置文件中。
另一个注意事项:
您的代码无论如何都容易受到凭据泄漏的影响。切勿手动检查 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。