首页 > 解决方案 > 这是“隐藏”数据库凭据的足够好方法吗?

问题描述

只是寻找一些提示,如果这足够好,或者我应该做任何不同的事情来“隐藏”我的数据库凭据。找了很久。我找到了很多方法来做到这一点,并且觉得每个人都以不同的方式做这件事。所以想知道这是否足够好。谢谢你。

现在,我将一个带有我的数据库凭据的 config.ini 文件存储在公共目录之外。然后在公共目录中,我得到了一个文件夹名称 db_includes。这是我有我的数据库连接 php 文件的地方。这是数据库连接的代码。

$config = parse_ini_file('../../private/config.ini');
$db = new \PDO('mysql:dbname='.$config['DB_NAME'].';host='.$config['DB_SERVER'].';charset=utf8mb4', ''.$config['DB_USERNAME'].'', ''.$config['DB_PWD'].'');

同样在 db_includes 文件夹中,我得到了一个 .htaccess 文件,该文件具有“全部拒绝”,因此无法访问该 db_includes 文件夹或数据库连接文件。

这是好还是我也应该将数据库连接文件移到公共目录之外并在需要时调用它?

标签: phpdatabase

解决方案


有几种方法可以做到。首先,我建议使用 PHP 文件来存储凭据,这样如果您的 htaccess 失败,无论如何都会解析 php 文件并且您的凭据不会出​​现:

配置.php:

<?php

return [
    "DB_NAME" => "database",
    "DB_USER" => "user"
    // ...
];

无论您需要:

$config = require "path/to/config.php";
$db = new \PDO('mysql:dbname='.$config['DB_NAME'].';host='.$config['DB_SERVER'].';charset=utf8mb4', ''.$config['DB_USERNAME'].'', ''.$config['DB_PWD'].'');

如果可能,请将其保存在您的公用文件夹之外,因为这是确保其安全的好方法。

请记住,如果您的数据库和服务器配置良好且足够安全,则您无需担心数据库凭据。


推荐阅读