避免使用硬编码的凭据mysqli php?

时间:2014-06-12 11:18:44

标签: php mysql mysqli

我正在开发一个需要连接数据库的简单php应用程序 这是创建与db

的连接的代码的一部分
private $mysqli;

public function __construct()
{
     $this->mysqli = new \mysqli("localhost", "root", "password", "mydb");
}

我的问题:如何避免硬编码凭证,客户要求我避免这种情况?

我应该在哪里设置这些设置?

3 个答案:

答案 0 :(得分:1)

正如@ user1978142所说,配置文件最适合存储这种信息。优选地,该配置文件应存储在服务器目录之外(因此没有人可能意外地获得外部访问)。此外,您应确保仅限用户选择此文件

答案 1 :(得分:1)

使用config文件:

require_once("../path-to-your-config/config.php");

使用示例:

require_once("../path-to-your-config/config.php");

class ABC {

    private $mysqli;

    public function __construct()
    {
         $this->mysqli = new \mysqli(Conf::HOST, Conf::USER, Conf::PASSWORD, Conf::DB);
    }
}

答案 2 :(得分:0)

创建一个名为credentials.php的单独文件,并将其放在不属于root文件夹的文件夹中,或限制对该文件夹及其内部文件的访问。在此文件中,分配您想要的所有值$server$username$password等,并在需要时,只需使用require_once功能即可访问他们。

如果从一个数据库更改为另一个数据库,您还可以考虑使用PDO