PHP可靠地确定调用者文件的路径

时间:2016-10-06 15:22:06

标签: php security path filesystems

我有一个文件,它将包含在父文件中,可以说是文件。我需要从子文件中可靠地确定父文件的路径。

我的第一个想法是$_SERVER['SCRIPT_FILENAME'],但可以从父文件中轻松操作。

接下来我想到的是getcwd(),但这并不总是有效,apache总是提供已执行脚本的目录,但是如果是从cli或cron运行则不是这样。

如果我不能信任父文件,那么从要包含的文件中确定其位置的安全方法是什么?

1 个答案:

答案 0 :(得分:2)

Offhand,找不到任何直接在包含链中提供“父”路径的内容,但您可以使用debug_backtrace()

./ z.php

<?php
include('y/y.php');

./ Y / y.php

<?php
var_dump(debug_backtrace());

然后:

$ php z.php
array(1) {
  [0]=>
  array(3) {
    ["file"]=>
    string(44) "/home/marc/z/z.php"
    ["line"]=>
    int(3)
    ["function"]=>
    string(7) "include"
  }

}