安全版本控制

7
我希望你能就“版本控制”这个主题发表关于安全方面的意见。
以下是一些常见功能:
- 允许客户端访问源代码(无法直接在服务器上访问源代码); - 授权访问我被允许修改的源代码(例如,开发人员只能访问与其项目相关的源代码)。因此,应该可以创建用户组并授予不同级别的访问权限; - 跟踪修改、签入、签出和进行这些操作的开发人员...... - ...当然,我可能忘了某些功能。
你知道哪些最“多疑”的版本控制系统?它们实现了哪些功能?
我的目的是创建一个管理敏感数据(如信用卡、密码等)的应用程序开发环境。恶意开发人员可能会插入后门或有意更改某些安全特性。因此,对源代码的访问应严格受控制。
我必须承认,我对版本控制系统的了解很少,所以,我担心,自定义SVN可能对我来说是一项艰巨的任务。
谢谢。

几乎所有的版本控制系统都实施了您提到的安全措施,通常还有更多。您提问的目的是什么? - NotMe
没有太多的跟踪结帐。 - gbjbaanb
Perforce跟踪检出,但gbjbaanb是正确的。很少有版本控制系统具有强大的安全控制。 - Rob Napier
5个回答

2
我知道你想要的不是你真正想要的。例如,Clearcase或Serena Dimensions可以完成以上所有操作...但你会疯掉想要使用它们。(啊,我听到你说,我是管理员,所以我不必承受那种痛苦。好吧,这些也需要大量的关注和维护-在我上一家公司工作时,我们有8个Clearcase管理员。你不想一直帮助用户解决问题的噩梦)。
所以。你可以选择可怕的东西,或者你可以只使用友好、易于使用的SVN,并实现自己的checkout-tracking(使用http传输和Apache日志),并在每个目录上设置访问控制权限。你还需要保护磁盘上的最终存储库,但你必须对每个SCM都这样做,即使像Dimensions这样的东西将其数据库存储在Oracle中-如果你有访问Oracle实例的权限,你也可以修改保存的位,因此你必须保护它。

1
在Clearcase中,您无法控制vob级别的挂载和读取(这是我工作场所的一个重大问题)。版本...8?7.1?将引入此功能。 - Paul Nathan
@Paul,同意。Clearcase对访问的控制非常有限。不仅是在vob级别上挂载,而且很难控制用户在vob内可以看到什么;通常必须使用Unix组,这些组被公认为受限和难以执行。 - Rob Napier

2

Perforce在金融行业广泛使用,其中代码安全有时是一个问题。

您可以设置门卫和访问控制以限制代码的可见性,并为符合SOX合规性的各种活动生成审计跟踪。


同意。虽然我不是Perforce的忠实粉丝,但它是我使用过的唯一一个可以完成大部分这些任务的工具。Clearcase缺乏细粒度控制,而大多数开源工具(如cvs、svn、hg、git)在这方面表现较弱,因为它们更专注于开源项目。对于良好的审计功能和细粒度访问控制,我肯定会选择p4,尽管作为用户,它让我感到非常疯狂。 - Rob Napier
@Rob Napier:我同意 - 如果可以选择,我会选择开源的分布式版本控制系统。但是如果主要需求是审计和安全性,我会推荐Perforce。当然,如果hg、git或Bazzar获得了相同的功能,我也很乐意转换! - Robert Christie

1

Perforce 具备这些功能,是我个人认为非常优秀的产品。


1
真的吗?我们以前在工作中使用p4,不得不处理缓慢的存储库、检查点期间迟钝的响应、糟糕的集成跟踪等问题。我感觉这太依赖于托管服务器的机器性能,因为几乎所有的工作都是在那里完成的。 - Noufal Ibrahim
@NoufalIbrahim,你对Perforce和其他工具(如SVN、ClearCase等)有什么建议吗?我很困惑,找不到有用、安全和最佳的版本控制软件。 - QMaster
我已经完全转向使用Git进行专业和个人工作。 - Noufal Ibrahim

1

使用像subversion这样的知名行业标准系统。它可以非常简单地控制对个别项目的访问,并且使用Web服务器authz配置可以控制对每个项目中特定文件的个别访问。

唯一的非标准问题是日志记录检出。但是Web服务器可以轻松为您记录此信息。

您的用户会感谢您的。


0

GitHub是Git的封装,为Git服务器提供了这些功能。与原始的Git服务器相比,它显著包括访问控制,并且还为授权用户提供了有用的代码Web界面。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接