【问题标题】:Unix advanced file permissions on web serverWeb 服务器上的 Unix 高级文件权限
【发布时间】:2011-12-07 07:50:59
【问题描述】:

我有 3 个包含 PHP 脚本的文件夹:

- core 
- custom_modules_1 (cm1)
- custom_modules_2 (cm2)

核心由 Apache 执行,包括来自 cm1 或 cm2 的 (require_once) 文件。它永远不会同时包含 cm1 和 cm2。

但是当 cm1 包含来自 cm2 的文件时会出现问题,这应该被阻止,但是如何?

我正在使用 cPanel 运行 VPS CentOS 服务器,因此 ACL 可能不是一个选项,因为它可能会破坏 cPanel。

【问题讨论】:

  • 我觉得这是与编程相关的问题。

标签: apache2 php permissions acl


【解决方案1】:

这无法通过权限解决。您需要为每个脚本添加标记代码以防止交叉包含。

【讨论】:

    【解决方案2】:

    有很多方法可以解决这个问题,具体取决于您的具体要求(帖子中不清楚)。

    • 对脚本使用不同的包含路径,具体取决于它们将从何处获取模块(将 custom_modules_1 或 custom_modules_1 作为路径的一部分)

    • 使用 open_basedir 限制对特定目录的访问

    • 对不同的文件集使用不同的所有权并使用 suphp 强制访问权限

    【讨论】:

      【解决方案3】:

      感谢您的回答,但我设法强制执行所需限制的唯一方法是使用 php auto_prepend_file 附加一个文件,该文件在包含的每个 php 文件中进行某些检查。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-02-27
        • 2011-03-19
        • 1970-01-01
        • 2016-06-16
        • 2011-10-22
        • 2012-04-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多