对于任何知道自己在做什么的人来说,这可能是一个非常简单的问题,但我自己找不到任何答案。 我试图为我的好朋友设置一个子目录,以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的影响。
当脚本尝试访问文件系统时,例如使用include或fopen() ,将检查文件的位置。 当文件在指定的目录树之外时,PHP将拒绝访问它。 所有符号链接都已解决,因此使用符号链接无法避免此限制。 如果该文件不存在,则符号链接将无法parsing,并将文件名与已parsing的open_basedir进行比较。