【问题标题】:prevent php access and include for files in parent directory阻止php访问并包含父目录中的文件
【发布时间】:2011-12-07 23:53:19
【问题描述】:

是否可以通过 htacces 或其他方式阻止 php 包含或访问某个目录下的文件?在这种情况下,用户 1 和用户 2 都可以通过 FTP 直接访问他们的文件夹,但不幸的是,我无法为他们提供独立的 php 平台来工作。有什么办法可以避免 user1 在他的文件中执行类似“../user2”的操作,或者更糟糕的是访问其他网站“../../website1”?

/root
/root/website1
/root/website2
/root/website2/users
/root/website2/users/user 1 [..]
/root/website2/users/user 2 [..]

【问题讨论】:

    标签: php security .htaccess protection


    【解决方案1】:

    将这两个目录的所有权和组设置为相关用户,并将权限限制为目录的所有者/组(基本上,从其他人的目录中删除 rwx)。

    这将需要在 Apache 虚拟主机中进行进一步配置,以指定哪个“用户”Apache 应该读取相关文档根目录:mod_suexec » suexecusergroup

    您可能应该将服务器 umask 设置为 007 以保持对所有新文件/文件夹的此限制。

    另外,我会在您的 web-root sudo find . -type d -exec chmod g+s {} \; 中的所有文件夹上设置 SETGID 位

    【讨论】:

    • 这在大多数情况下实际上不起作用,因为 PHP 通常以 Apache 用户身份运行。
    • 对于适当的用户,我认为他是指Apache使用的用户。这样做会起作用,因为这样 PHP 将无法访问该文件。
    • 在 Apache 中设置正确的配置意味着 PHP 将由您想要的任何用户调用 - 甚至在每个站点的基础上。
    猜你喜欢
    • 2012-07-27
    • 1970-01-01
    • 2011-09-16
    • 2023-04-01
    • 2013-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-28
    相关资源
    最近更新 更多