如何禁止用户的脚本访问其用户文件夹之上的任何内容?

对于任何知道自己在做什么的人来说,这可能是一个非常简单的问题,但我自己找不到任何答案。 我试图为我的好朋友设置一个子目录,以testing我的(Apache)托pipe计划上的PHP脚本。 但是,我不想让他访问我的服务器上的任何其他内容,原因很明显。

他的FTPlogin已经导致他到正确的目录,这不允许导航任何高于根(mydomain.com/friend/)。 我想同样的行为适用于任何脚本,所以他不能简单地

<?php print_r(glob("../*")); ?> 

并查看我所有的文件。 我想这可以通过设置DocumentRoot的.htaccess文件来完成,但是我不能在用户目录中修改文件。

这可能没有主要重新连线的networking服务器? 我试着用谷歌search各种各样的东西来形容我的问题,但没有适当的术语,我得到的只是“共享主机”网站和试图向我推销安全软件包的人。

你可以使用PHP的参数open_basedir 。 它将阻止在open_basedir指定的目录之外访问PHP脚本。 从官方文档摘录

open_basedirstring

限制PHP可以访问的文件到指定的目录树,包括文件本身。 此指令不受安全模式打开或closures的影响。

当脚本尝试访问文件系统时,例如使用includefopen() ,将检查文件的位置。 当文件在指定的目录树之外时,PHP将拒绝访问它。 所有符号链接都已解决,因此使用符号链接无法避免此限制。 如果该文件不存在,则符号链接将无法parsing,并将文件名与已parsing的open_basedir进行比较。