1

PHP手册指出:

open_basedir(字符串)

将 PHP 可以访问的文件限制在指定的目录树中,包括文件本身。该指令不受安全模式是打开还是关闭的影响。

当脚本尝试访问文件系统时,例如使用 include 或 fopen(),会检查文件的位置。当文件在指定的目录树之外时,PHP 将拒绝访问它。

还有,再远一点...

open_basedir 不仅可以影响文件系统功能;例如,如果 MySQL 配置为使用 mysqlnd 驱动程序,则 LOAD DATA INFILE 将受到 open_basedir 的影响。PHP 的许多扩展功能都以这种方式使用 open_basedir。

然而,这个限制似乎并没有达到套接字操作。在我的服务器上,即使我设置open_basedir/home:/tmp,我仍然可以/run通过该socket_connect函数访问下面的套接字文件(请注意,我没有将/var/run( ) 移动到or/run下的某个扭曲位置)。/home/tmp

有没有办法扩展open_basedir的限制以包含套接字文件* 路径,这样就不可能在/homeand之外打开套接字文件/tmp

* 我知道套接字文件并不是真正“打开”的,而是通过socket_connect函数和bind系统调用“绑定到”的。但是,因为open_basedir似乎适用于非文件系统功能......我猜可能有一种方法。

4

0 回答 0