登录到mysql数据库需要凭据.我在名为class.DBOne.php的PHP类中拥有这些凭据.
这是在服务器上的git仓库中.我使用push来部署.
我想与一些合同开发者共享repo,但我不希望他们有权访问凭据.
我该如何缓解这种情况?
他们应该是凭据吗?
这是一个片段:
// creates one instance of a database
class DBOne
{
private $DB_USER = 'foo';
private $DB_PASS = 'foo';
private $DB_DRIVER = 'mysql:dbname=foo;host=localhost';
// singleton uses static variable to ensure only 1 instance at a time
private static $database;
private function __construct()
{
$this->checkForClearDB();
// self::checkForClearPostgres();
try
{
// instaniate a database connection
self::$database = new PDO( $this->DB_DRIVER, $this->DB_USER, $this->DB_PASS );
}
catch( PDOException $pdoError )
{
echo 'pdo connection failed: ' . $pdoError->getMessage();
}
}
解决方法:
将凭据移动到单独的文件,
并保持内容尽可能简单,
基本上只是变量赋值,如下所示:
$DB_USER = 'foo';
$DB_PASS = 'foo';
$DB_DRIVER = 'mysql:dbname=foo;host=localhost';
?>
并且不要在版本控制中添加此文件.改为添加示例文件,
开发人员应该定制到他们的本地开发数据库.
在其他文件中使用这些变量时
您必须使用global关键字指示它们在全局范围内,例如:
global $DB_USER, $DB_PASS, $DB_DRIVER;
标签:php,git,mysql
来源: https://codeday.me/bug/20190528/1168689.html