如何保护特定的PHP源代码文件夹免受特定开发人员的攻击?

如何保护特定的PHP源代码文件夹免受特定开发人员的攻击?,php,apache,security,access-control,Php,Apache,Security,Access Control,我们有一些聪明的开发人员,他们从事独立的专有项目。我们主要使用PHP进行特别分析,并制作一系列PHP web工具来帮助我们在内部可视化 目录结构如下所示: /var/www/ /安东/ /玛丽/ /共享脚本/ 安东不能查看玛丽的剧本,反之亦然 我可以设想更改Linux文件夹权限,这样Anton只能读/写/执行他的文件夹,甚至不能读Mary的文件夹 但是,在这种情况下,如何防止安东发生以下情况: 在他自己的文件夹中编写一个PHP脚本,运行“exec”命令来“cat”Mary文件夹中的源代

我们有一些聪明的开发人员,他们从事独立的专有项目。我们主要使用PHP进行特别分析,并制作一系列PHP web工具来帮助我们在内部可视化

目录结构如下所示:

  • /var/www/
    • /安东/
    • /玛丽/
    • /共享脚本/
安东不能查看玛丽的剧本,反之亦然

我可以设想更改Linux文件夹权限,这样Anton只能读/写/执行他的文件夹,甚至不能读Mary的文件夹

但是,在这种情况下,如何防止安东发生以下情况:

  • 在他自己的文件夹中编写一个PHP脚本,运行“exec”命令来“cat”Mary文件夹中的源代码
  • 将脚本作为默认Apache用户的www数据运行,因此可以访问所有文件夹,包括Mary的
通常,如果您想在一台服务器上运行多个专有项目,您将如何进行


(请注意,我对代码混淆/加密不感兴趣。法律补救措施也是我们已有的一种选择。不过,我对法律领域以外的解决方案非常感兴趣。)

然后为每个开发人员创建一个脚本:每个脚本都有自己的登录系统保护,将列出开发人员文件夹中的所有文件,并允许使用表单编辑这些文件,该表单将修改(使用str_replace)从开发人员文件夹中出来的相对路径,每个vhost快速搜索apache配置用户


基本上,我建议将每个用户的文件夹作为自己的虚拟主机,然后为每个vhost使用单独的用户。这样,linux目录安全性即使对于PHP脚本也是有效的。

为什么它们在/var/www下?Anton可以登录到localhost/mary并查看其中的所有脚本。我见过在堆栈溢出(例如)上以各种形式提出这一问题,答案通常是您应该雇佣值得信赖的开发人员,然后信任他们。从技术上讲,您可以只运行几个服务器(这提供了更好的安全级别),但我怀疑告诉您的开发人员您不信任他们的流程可能无助于建立您应该追求的长期关系。在我的工作中,我们不担心权限,但我们确实将代码分离(更多用于版本控制)。我们所做的,这可能会为你工作,是设置虚拟主机,并给每个人自己的子域。然后将子域设置为将其文档根指向不同的文件夹,并启用open_basedir。然后设置linux权限以防止访问彼此的文件夹。PHP将无法看到文档根目录之外的内容,并且无法使用linux访问每个文档。