2014-04-03 31 views
2

我们有几个聪明的开发人员从事不同的专有项目。我们主要使用PHP来做临时分析并制作一堆PHP网络工具来帮助我们在内部对事物进行可视化。如何保护特定开发人员的特定PHP源代码文件夹?

的目录结构是这样的:

  • /无功/网络/
    • /安东/
    • /玛丽/
    • /共享脚本/

安东不应该能够看到玛丽的剧本,而且是恶作剧反之亦然。

我可以设想改变Linux文件夹的权限,以便安东只能读/写/执行他的文件夹,甚至不读玛丽的文件夹。

然而,在这种情况下,是什么阻止安东从以下方面:

  • 写在自己的文件夹中的PHP脚本,从玛丽的文件夹中运行一个Exec命令,以“猫”的源代码?
  • 将脚本运行为www-data这是默认的Apache用户,因此可以访问所有文件夹,包括Mary's?

一般来说,如果你想在一台服务器上运行多个专有项目,你会怎么做呢?

(请注意,我不感兴趣的代码混淆/加密。法律救济也是我们已经到位的选择。我会在以后的法律领域的解决方案很感兴趣,虽然)。

+0

为什么他们在/ var/www呢? Anton可以登录localhost/mary并查看下面的所有脚本。 – theunamedguy

+1

我见过这种问题在堆栈溢出各种伪装(例如[这个问题](http://stackoverflow.com/questions/173875/how-do-you-protect-code-from-leaking-outside))和答案通常是你应该聘用值得信赖的开发人员,然后相信他们。从技术上讲,你可以运行几台服务器(这可以提供更好的安全级别),但是我怀疑那些告诉你的开发人员不信任他们的进程可能无助于建立你应该瞄准的长期关系。 – halfer

+2

在我的工作中,我们不担心权限,但我们确实将代码分开(更多用于修订控制)。我们做什么,这可能会为你工作,是设置虚拟主机,并给每个他们自己的子域。然后设置子域以将其文档根目录指向不同的文件夹并打开open_basedir。然后设置linux权限以防止访问彼此的文件夹。 PHP将无法在文档根目录之外看到它们,并且它们不能使用Linux来访问它们。 –

回答

0

然后为每个开发人员创建一个脚本:每个脚本受其自身的登录系统保护,将列出开发人员文件夹中的所有文件,并允许使用表单编辑它们,该表单将修改(使用str_replace)相对路径,开发人员的文件夹