php - 在 PHP 应用程序中保持数据库凭据的安全

标签 php mysql

我正在开发我的第一个 PHP 应用程序。现在,我将我的数据库连接详细信息保存在根文件夹外的配置文件中的常量中,因为我读到这是防止人们获取您的数据库凭据的最安全方法。

如果我将该文件包含到我的 PHP 应用程序中,这些常量现在不是在我的代码中随处可见吗?这不是一件坏事吗?我个人的想法是创建一个数据库类,将其存储在根目录之外,然后将我的凭据放入私有(private)参数中。所以它会是这样的:

class Db {

    private $host = 'host';
    private $dbname = 'dbname';
    private $username = 'username';
    private $password = 'password';

    private $connection;

    public function __construct() {
        $this->open_connection();
    }

    private function open_connection() {
        try {
            $this->connection = new PDO('mysql:host=' . $this->host . ';dbname=' . $this->dbname, $this->username, $this->password);
        } catch (PDOException $ex) {
            // handle exception
        }
    }

}

然后我会只包括这个文件,有什么想法吗?

最佳答案

如果有人可以访问您的 PHP 源文件,那么您遇到的问题比被发现的数据库登录名还大。只是说。

我将我的数据库凭据保存在一个有意义的地方:在连接到数据库的函数调用中。

关于php - 在 PHP 应用程序中保持数据库凭据的安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22824934/

相关文章:

php - 将 CodeIgniter 错误的表单写入数据库时​​出错

php - 在 for 循环中从数组中获取值以在 MySQL 中使用

php - Symfony2 - 如何为每个请求或生成的 URL 的路由添加一个全局参数,类似于 _locale?

mysql - 如何从表中获得第二高?

php - 每个输入的不同 sql 查询

java - DbUnit 和 JSON 列类型支持

php - 用户名和密码无效

php - 根据用户的类型/角色重定向到不同的 View 。使用 Laravel 5.8

mysql - 在 when 子句中替换 MySQL 查询中的空值

mysql - 禁用所有模块输出,寻找重新启用它们的方法