我正在编写一个应用程序,我希望允许一些用户在我的服务器上编写/运行/测试他们的代码,并使用我的应用程序中的一些预加载代码。我希望这些用户只能在他们的目录中工作,并且可以使用 来完成此任务open_basedir();
,但问题是,如果我想包含我的应用程序的代码,如果or位于 a或 a中,则权限被拒绝,因此文件是不包括之前被调用。require
include
function
class
open_basedir
例子 :
<?php
function test()
{
require 'test.php';
}
test(); // ok
ini_set('open_basedir', 'users/username/');
test(); // permission denied
是否有可能以某种方式允许包含应用程序的“受信任”代码但不允许用户的代码访问其他目录?如果可能,请给我一个示例或主要想法,说明如何解决此问题,即使这与 open_basedir() 无关
在我的示例中,我不希望权限被拒绝。这将使我有可能为我的应用程序添加一些很棒的功能。
另一个例子 :
spl_autoload_register(function($class) {
require $class . '.php';
});
ini_set('open_basedir', 'folder/');
new Test(); // Warning: require(): open_basedir restriction in effect.