<?php
class Database {
private $host = "localhost";
private $username = "root";
private $password = "";
private $dbname = "myapp";
public $conn;
public function DBConnection() {
$this->conn = null;
try {
$this->conn = new PDO("mysql:host=" . $this->host . ";dbname=" . $this->db_name, $this->username, $this->password);
$this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$this->conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MOD, PDO::FETCH_ASSOC);
$this->conn->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
} catch(PDOException $exception) {
echo "Connection error: " . $exception->getMessage();
}
return $this->conn;
}
}
?>
我正在使用上述PDO方法连接到我的数据库。但是,如果我尝试在其他页面上创建此类的新实例,请说debug.php,如:
$db = new Database();
它将在页面源中抛出包括我的密码在内的所有参数。
我的问题是,由此导致我的数据库安全受到损害的可能性有多少?
答案 0 :(得分:1)
绝对不要在源代码中存储身份验证凭据(用户ID,密码,API密钥),尤其是在使用git之类的源代码控制系统的情况下。您git push
一经拥有对存储库的读取访问权限,任何人都将获得对数据库的写入访问权限。有一些常见的选择: