在版本控制下管理最敏感内容的位置?

时间:2009-06-07 17:25:32

标签: svn security git version-control mercurial

是否有任何版本控制系统允许您指定行级安全限制而不是文件级别?我知道维持这将是可怕的。如果我想永远不允许某些字符串进入数据库,我是否应该研究钩子的概念并管理该钩子层中的所有非常敏感的信息?钩子如何从系统复制到系统?

更新:管理此问题的最佳方法是pgp加密敏感数据,而那些无法解密的人将被置于黑暗之中。有什么想法吗?从安全角度来看,可能不是最佳实践。

5 个答案:

答案 0 :(得分:5)

我们遇到了同样的问题,并决定通过设置第二个存储库来解决它。

当我需要将我们的configuration management文件存储在包含敏感信息的版本控制中时,就会发生这种情况。将来自我们应用程序的敏感数据存储在那里也是有意义的。

我们最初使用svn externalsgit submodules来包含敏感数据,但后来发现只需simlink到另一个位置就不那么麻烦了。

我还发现添加适当的忽略有助于防止相同的文件被检入开发存储库。由于这样做,我们没有任何人意外地检查任何敏感的东西。

它有助于尝试将敏感信息保存在一组简洁的配置文件中 - 我不会将其展开,把它放在一个地方并保护那个地方。

答案 1 :(得分:2)

也许您应该将令人担忧的字符串,行和函数分离到一个单独的文件中(或者更好的文件)。这样你就可以管理有问题的文件。

答案 2 :(得分:2)

  

是否有任何版本控制系统允许您指定行级安全限制而不是文件级别?

是否有任何操作系统允许您指定行级安全限制而不是文件级别?可能只在国家安全局(和朋友)。

您最好的选择是在将任何包含敏感信息的文件添加到版本控制之前对其进行加密。这也可以保护它免受意外显示,例如当有人看着你的肩膀时,git diff。

答案 3 :(得分:1)

Subversion不允许它,我认为没有其他人这样做。

答案 4 :(得分:1)

您可以运行单独的存储库,并使用敏感数据在存储库上维护更严格的控制。