security - 集中式与分布式版本控制安全性

标签 security version-control dvcs

当我的公司开始进一步探索从集中式版本控制工具(CVS、SVN、Perforce 和许多其他工具)转向为团队提供分布式版本控制工具(在我们的例子中为 Mercurial)时,我遇到了一个问题:

问题

一位经理担心分布式版本控制可能不如我们的 CVCS 选项安全,因为存储库历史记录本地存储在开发人员的计算机上。

很难确定他确切的安全问题,但我认为它集中在这样一个事实:恶意员工不仅可以通过复制单个文件夹来窃取最新的知识,还可以窃取我们整个更改的历史记录。

问题

  • 分布式版本控制系统真的会给项目带来新的安全问题吗?
  • 恶意窃取代码是否更容易?
  • 完整的历史记录是否代表了最新版本代码所没有的额外威胁?

我的想法

我的看法是,这可能是一种错误的想法,即集中式模型更安全,因为历史似乎更安全,因为它是独立存在的。鉴于即使对集中式存储库具有读取访问权限的用户也可以有选择地提取任何关键修订版项目的快照,我不确定 DVCS 模型是否能让这一切变得更容易。此外,大多数 CVCS 工具允许您使用单个命令提取整个存储库的历史记录,以便您可以将它们导入到其他工具中。

我认为另一个问题是历史与最新版本相比有多重要。假设有人可以 checkin 绝密文件,然后将其删除,那么历史记录很快就会变得很重要。但即使在这种情况下,CVCS 用户也可以使用单个命令查看该绝密版本。

我确信我可能会遗漏某些内容或淡化风险,因为我渴望看到 DVCS 成为完全受支持的工具选项。请贡献您对安全问题的任何想法。

最佳答案

如果您拥有 CVCS 的读取权限,您就有足够的权限将存储库转换为 DVCS,人们一直在这样做。没有任何软件工具可以保护您免受心怀不满的员工窃取您的代码的影响,但 DVCS 有更多选项来处理不受信任的贡献者,例如看门人工作流程。因此它在开源项目中得到广泛使用。

关于security - 集中式与分布式版本控制安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7640605/

相关文章:

c# - https 使用 BasicHttpBinding 并忽略证书错误

linux - 如何保护 drupal 文件的权限?

mysql - 从各种主机连接到 MySQL 数据库

svn - svnmerge 真的可以帮助我吗?

c++ - 尝试玩 Unreal Engine 4.20 时崩溃?

git - 撤消 Git 中一个文件的工作副本修改?

git - 如何使 Drupal 与 GitHub 存储库保持同步?

security - "double hashing"密码是否比仅散列一次更安全?

git - Excel-VBA代码的版本控制系统

git - 分布式版本控制系统和企业 - 一个好的组合?