我的公司正在考虑从SVN过渡到TFS,并且正在评估Team Foundation版本控制和GIT。尽管Git提供了出色的分支和合并功能,但最令人担忧的是开发人员计算机上存储库的本地克隆。源代码安全性对于公司的管理至关重要,因此,他们对于从集中式版本控制系统转向犹豫不决。
有人可以阐明这个问题吗?我们如何保证源代码的安全性,以至于无法逃脱?而且无论Git是否适合我们。
答案 0 :(得分:1)
我以前已经经历过这个评估过程。
结论是:分布式代码的安全性不超过集中式代码的安全性:签出代码库后,无论版本控制系统如何,都可以渗透并“运行”它。
区别在于,您可以拥有所有历史记录的存档,而不是最新的存档,但这在安全性方面没有多大区别。
代码盗窃未与所使用的VCS链接,而是依赖于其他措施(阻止Internet存储服务,阻止对USB的写访问等)
正如我在2011年的“ Distributed Version Control Systems and the Enterprise - a Good mix?”中提到的(!)一样,Git在企业环境中还面临其他挑战:
对于那些人来说,仅Git是不够的:您需要一台用于管理用户的服务器(GitHub Enterprise,Gitlab,Gita ...)
我也看到了关于作者身份的担忧(您可以按自己的意愿创建一个提交:user.name
只是一个字符串),导致pgp-signed commits可以更好地标识/验证作者。
答案 1 :(得分:1)
评论太久了。
请考虑一种情况,即您的公司根本不使用VCS,而只是使用简单的旧文件和zip存档。可以采取什么措施来防止开发人员“窃取代码”?
根据我的个人经验:首先是NDA,即非技术性的,纯粹的司法措施。
然后,您可以阻止特定的开发人员访问特定的文件集。那根本就不让我们看到秘密文件。只有受信任的人才能处理密码和数据。
然后,您可以限制开发人员使用USB和其他外部设备的能力。但是我怀疑这一特殊措施是否有效。为什么?由于通常您无法100%地控制一个人,因此,强盗无论如何都可以发送带有附件的电子邮件,将秘密文件上传到远程服务器或使用隐秘技术来隐藏猫照片中宝贵的代码部分。 / p>
总的来说,要知道一个秘密,而不是分享或窃取一个秘密。
返回GIT:您可以将整个资源集合分割成不同的值,将它们分别放入单独的存储库中,对给定存储库具有不同的访问权限,然后使用GIT Submodules将一个存储库链接到另一个存储库如果您希望重新创建整个源代码树。这样,特权人员将可以访问整个源代码树,而不太受信任的开发人员(例如,处于试用期的开发人员)将只能访问某些“不安全的”文件。