.htaccess:阻止php脚本访问父/兄弟目录

时间:2013-02-19 21:22:03

标签: php .htaccess security

我对.htaccess(除了简单的mod_rewrite和基本拒绝/访问之外)不是特别熟悉,并且不确定如何处理以下问题:

我的目录结构如下:

/parentDirectory
    /childDirectoryOne
    /childDirectoryTwo

我有一个指向/ parentDirectory的域名(我们称之为parent.com),并为每个子目录分隔子域名(我们分别称它们为one.parent.com和two.parent.com )。

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

我一直试图做的事情(到目前为止没有成功)是开发一组.htaccess文件,这些文件会阻止子目录中的脚本访问父目录或兄弟目录。我甚至不确定这是否可行。不幸的是,我的共享主机不支持设置chroot jail,所以这是我找到解决方案的最后一个选择(在为每个ftp用户购买托管旁边,以便他们无法访问其他信息)。

2 个答案:

答案 0 :(得分:1)

对于您不完全信任的人,允许对文件夹进行读取,写入和执行权限被认为是不好的做法。

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

我建议完全禁用php上传文件。您可以将其放在.htaccess中。

php_flag engine off

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

<Directory /parentDirectory/childDirectoryOne>
  php_admin_value open_basedir "/parentDirectory/childDirectoryOne"
</Directory>

答案 1 :(得分:1)

注意!

您也需要使用safe_mode,否则shell(),exec()...会被黑客攻击....但是!这还不够。完整阅读 - https://puvox.software/blog/restrict-php-access-upper-directory/