3

我对 .htaccess 不是特别有经验(除了简单的 mod_rewrite 和基本的拒绝/访问),并且不确定如何解决以下问题:

我的目录结构如下:

/parentDirectory
    /childDirectoryOne
    /childDirectoryTwo

我有一个指向 /parentDirectory 的域(我们将其称为 parent.com),并为每个子目录分配单独的子域(我们将分别称为 one.parent.com 和 two.parent.com)。

这些都位于共享主机上。我需要能够授予对子目录的 ftp 访问权限,但问题是现在,有人可以将 php 文件上传到 childDirectoryOne 扫描父目录,从而发现其兄弟目录,然后可以移动到兄弟目录和从文件(如 dbConfig 文件)中获取敏感信息。

我一直在尝试做的(到目前为止没有成功)是开发一组 .htaccess 文件,以防止子目录中的脚本访问父目录或兄弟目录。我什至不确定这是否可能。不幸的是,我的共享主机不支持设置 chroot 监狱,所以这是我寻找解决方案的最后选择(除了为每个 ftp 用户购买主机,这样他们就无法访问其他信息)。

4

2 回答 2

1

将文件夹的读取、写入和执行权限授予您不完全信任的人被认为是不好的做法。

上传任意脚本并在服务器上执行它的能力非常重要(他们访问另一个文件夹是您最不必担心的)。人们可以完全破坏您的服务器及其上的所有站点,访问您的数据库,覆盖任何站点中的其他页面,并且列表还在继续。

我建议对上传的文件完全禁用 php。你可以把它放在你的.htaccess.

php_flag engine off

话虽这么说,如果你真的想这样做,你可以使用open_basedir.

<Directory /parentDirectory/childDirectoryOne>
  php_admin_value open_basedir "/parentDirectory/childDirectoryOne"
</Directory>
于 2013-02-19T21:43:58.340 回答
1

NOTE!

You need to utilize safe_mode too, otherwise with shell(),exec()... you will be hacked.... BUT!! that's not enough. Read here fully - https://puvox.software/blog/restrict-php-access-upper-directory/

于 2015-05-27T19:27:05.623 回答