我想知道是否有办法在我的 Apache 服务器上设置文件权限,以便 Apache 可以提供这些文件,但某些用户无法读取或访问这些文件。基本上,我想弄清楚是否有可能从聘请的顾问那里“黑箱化”我项目的 PHP 代码库的部分内容。
答案1
Apache 将以特定操作系统用户的身份访问文件,通常名为“www-data”或类似名称,属于特定操作系统组(通常是“www-data”或类似名称)。
如果其他用户通过 Web 服务器访问文件,则需要在一定程度上进行访问控制多于操作系统层(即应用程序层)。例如,您可以在 php 中实现一个简单的访问控制。
如果您想要阻止其他操作系统用户直接访问文件系统上的文件(不通过 Web 服务器),那么您可以根据需要简单地授予操作系统组对该组文件的读取权限,并向该组添加/删除操作系统用户。
笔记:我刚刚解释您的问题,因为我对此不是很清楚。也许您可以澄清一下,以获得更合适的答案。
答案2
让顾问在开发环境中工作,当他们交付准备上线的代码时,亲自处理到生产环境的部署。
任何其他方法都至少有可能让顾问获得您不希望他们访问的代码。
答案3
如果您想保护应用程序的某些部分不被窥探,那么您可能应该考虑使用 PHP 编码器(IonCube 和 Zend Guard 是热门选择)。请注意,这些需要您安装解码器扩展,因此如果您使用共享主机,请务必联系您的主机提供商,看看这是否是可行的解决方案。
答案4
这取决于底层操作系统,在 Unix 上这种限制是完全可能的。
如果您不太信任他们而不愿意阅读代码,我认为更好的方法是:
- 限制对整个 Apache 服务器的访问,特别是在生产环境中
- 让他们使用 SVN 或其他版本控制软件,从你的服务器远程获取代码
- 实现面向服务的架构,这种设计可以很好地将某些部分隐藏起来。只要服务有清晰的文档记录并且按预期运行,就无需查看底层代码即可进行开发。