我正在使用一个函数来加载文件夹中的所有文件,如下所示:
foreach (glob(ROOT ."path/*.app.php") as $file) {
$filename = basename($file, '.app.php');
load_app($filename);
}
现在,我认为这可能有点不安全,而且我很确定我读过一些关于这是邪恶的事情。但考虑到这一点,我最终认为,如果有人可以将文件添加到我的根文件夹,通过FTP访问它,那么我的问题远比仅添加文件更糟糕。不是吗?
为什么我应该避免这种行为?有没有理由这样做?
答案 0 :(得分:1)
您给出的原因恰恰是使不安全的原因:如果{em}文件放在您的文件夹中(如果是错误的,或者是因为某人)故意把它放在那里),它将被解释。
更安全不包括所有文件 - 但只包含与您知道的文件相对应的固定列表。
答案 1 :(得分:1)
没有固有的安全问题。我只是为了简单和模糊的性能问题而避免使用它。
如果有人能够在根文件夹中添加新文件,他们很可能也能够修改现有文件。所以就像你说的那样,在那种情况下你会遇到更糟糕的问题。 (固定的可包含文件列表因此无论如何都无济于事。)
这是顺便说一句。我用于PHP cron脚本的方法,该脚本在cron.d/
文件夹中运行,并带有用于执行的枚举脚本。你的库包括用例有一些不同的目的,但我不能老实地看到任何事实问题。 (表现很可能无法衡量。)