安全和 .ini 文件

Security and .ini file

将连接到数据库所需的数据存储在 .ini 文件中是否安全?

我构建了这样的东西

<?php

    include_once($_SERVER['DOCUMENT_ROOT']."proto/class/Database.php"); 

    function connect()
    {
        $config = parse_ini_file($_SERVER['DOCUMENT_ROOT']."proto/admin/config.ini");   

        $host = $config['host'];
        $username = $config['username'];
        $password = $config['password'];
        $database = $config['dbname'];  

        $db = new Database($host,$username,$password,$database);    
        return $db;
    }

?>

我想知道在函数中使用重要变量是否是继续进行的好方法。

如果您将信息保存在 ini 文件或 php 文件中,我想这是个人的事情。使它安全的是您的文件不应保存在 public 网络路径中。 因此,请确保您 read/include 的文件位于文档根目录之外。

我会问为什么?为什么不将其设为 PHP 文件?

<?php
return array(
    "host" => "...",
    "username" = "...",
    //...
);

然后当你需要的时候,调用$config = require "config.php";

这比 ini 文件更好,因为它已被解析(你会得到语法错误的错误而不是忽略错误)并且因为解析是可缓存的(操作码缓存)。

此外,即使它位于 webroot 中(或者服务器配置错误允许直接访问该文件),它也不会受到直接 Web 访问。