我们已经在自己的MVC框架上构建了一个大型的自定义PHP项目。这个框架结构非常好,文件组织得很好,并被分解为特定的页面/方法/类。
我和我的主要编码器工作的代码不断,我们有充分的访问。我可以信任我的主要编码器,但现在我需要聘请额外的帮助。我已经找到了一些伟大的编码器,但我担心让他们FTP访问我们的系统开始工作,我不敢让他们访问所有的文件!
我的主要问题是:如何仅允许开发人员访问他需要更改的特定文件?
我曾经考虑过用ionCube或类似的东西加密整个项目,然后只解密特定的文件,但这是一个麻烦的解决方案。()语句添加到他要处理的文件中,这样就将这些文件限制在一个文件夹中,并允许他访问该文件夹。这也很麻烦,因为关键字范围等可能成为一个问题。此外,开发人员在自己的文件中编写代码只是部分修复,因为他需要查看一些其他相关文件的内容来查找方法/函数/类。2最好只选择开发人员可以访问的文件列表,而不允许他查看其他文件。这将允许我打开一个足够小的窗口,让开发人员自由地编码,而不必微观管理他/她(或将开发人员自己编写的代码放入主文件)。
这真的归结为保护代码库。我没有公司开发经验,所以我不知道“大人物”是如何做到的。任何建议/为我指明正确的方向将是一个很大的帮助!
2条答案
按热度按时间nfeuvbwi1#
所以很明显你的项目结构不好。否则你可以把它分成单独的存储库,每个单独的存储库都是“脱离上下文的”,所以访问它在“窃取业务逻辑”方面仍然是无用的,但足以执行一些开发...
尝试将其拆分为单独的部分作为包,然后将它们放入
vendor
目录,其中每个包都有自己的git
库。然后(你猜到了),你只允许访问一个特定的回购协议,而不用担心你的整个“代码”会被窃取。
但除此之外,你应该从信任你雇佣的人开始!
q9yhzks02#
首先,这不是一个糟糕的问题,就一个真实的系统而言,假设一家公司遭遇了数据泄露,而事实证明这是因为一个开发人员不守规矩,从一个配置文件中查找了数据库凭证,然后滥用了这一知识;员工显然是有罪的,但公司也可能是疏忽大意,并可能被追究责任,因为通过编码或其他一些手段,他们 * 本 * 可以采取措施,以防止访问凭据摆在首位,但他们没有麻烦。这将是公司未能尽最大努力保护数据库凭据,* 使 * 安全漏洞。
大型组织可能会有一个变更控制团队负责部署变更,这样开发人员就永远无法访问实时系统。类似的事情也可以做,开发人员对代码进行变更,第三方在部署到实时系统之前对变更进行审查。这不是微观管理,而是确保多一双眼睛能够审查已经做了什么,可能会产生什么影响。并提供了发现无意错误的机会。审阅者不会在查看部署的更改时投入感情,而是关心他们将对系统做什么,是否有数据库更改,何时是部署的最佳时间,它将影响谁,如果需要,他们如何回滚,谁需要被告知更改等。开发人员可能不会考虑这些事情。在实时系统上使用版本控制作为一种轻松回滚以及记录正在发生的事情的方式也是非常有效的。
如果希望防止一组开发人员在开发过程中看到某些代码,那么编码当然是一种可能性,这可能是出于法律的原因,而不仅仅是个人原因。这可以通过为每组要限制的代码使用不同的存储库来实现。以及开发者可用于获得某一修订版或其它修订版的代码的受保护版本的工具。一种相关的方法是用编码版本的文件来维护影子仓库,这可以通过源仓库上的提交后钩子来更新,并只允许开发人员访问编码仓库,以在他们的外部配置中引用(使用SVN的说法)。