在目录结构中搜索应用程序配置文件是一个坏主意吗?


Is it a bad idea to search for app config file up the dir structure?

我有一个 php 应用程序,其根目录中有一个配置文件。如果我按它的绝对路径包含它,那么当我将应用程序移动到其他地方时会遇到问题。如果我按相对路径包含它,则在移动包含配置的文件时会遇到问题。所以,我想出了这样的东西来搜索目录结构中的应用程序配置文件。

$relative_path = "";
for ($i=0; $i<6; $i++) {
    if (file_exists($relative_path."config.php")) {
        require ($relative_path."config.php");
        break;
    } 
    $relative_path .= "../";
}

这可能是个坏主意吗?

这会增加一些安全风险。 - 如果有人设法将配置文件放在"顶部",您的脚本将首先找到它并包含/执行它......(这可能从配置操纵到一些严重的攻击......

个人使用dirname(__FILE__) . '/path/to/config.php';

为什么不尝试使用服务器全局变量?例如:

require($_SERVER['DOCUMENT_ROOT'].'/../config.php');