登录到mysql数据库需要凭据。我在名为的PHP类中具有这些凭据class.DBOne.php
。
这在服务器上的git repo中。我使用推送进行部署。
我想与一些合同开发者共享该回购协议,但是我不希望他们能够访问凭证。
我该如何缓解呢?
凭证是应该的吗?
这是一个片段:
<?php
// 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();
}
}
将凭据移动到一个单独的文件,并保持内容尽可能简单,基本上就是变量分配,如下所示:
<?php
$DB_USER = 'foo';
$DB_PASS = 'foo';
$DB_DRIVER = 'mysql:dbname=foo;host=localhost';
?>
并且不要在版本控制中添加此文件。而是添加一个示例文件,开发人员应针对其本地dev数据库进行自定义。
当在另一个文件中使用这些变量时,必须使用global
关键字指示它们在全局范围内,例如:
global $DB_USER, $DB_PASS, $DB_DRIVER;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句