1

我们公司最近在本地源代码控制系统上采用了由 BitBucket 托管的私有存储库。除了源代码之外,每个存储库都有构建、配置和部署所需的所有组件(脚本等)。这在大多数情况下都很好用,但我对如何处理通常伴随我的构建和部署脚本的敏感密码、ftp 配置等感到困惑。

请参阅此类似的帖子,概述这些问题。

就我而言,xml 配置代表用于解析它们的代码,因此需要对它们进行版本控制(无论如何是模式)。

显然,将机密存储在本地以外的任何东西上都会增加您的风险,但是有什么替代方案呢?将它们加密存储?在构建过程中使用花哨的配置部分替换,从外部系统输入配置值?

4

2 回答 2

2

吉特

双向 KEYWORD<->CODE 替换的涂抹/清洁过滤器

水银

MQ-patch(本地),在本地工作目录中恢复敏感数据,在推送和发布的 repo 中丢失

于 2013-01-30T00:56:04.463 回答
0

您可以在本地存储包含敏感数据的配置文件。您应该签署此文件,其中包含私钥或密钥。验证签名的公钥应该存储在代码中。现在,您将加密的版本化配置存储在源存储库中。只有当应用程序在指定位置找到签名的解密密钥时,才能读取加密的配置。如果它找不到它们,它会退回到普通的默认值进行测试。如果您添加此附加技巧,请不要忘记添加您正在使用的配置的日志记录。您可能还想对配置文件进行签名或执行 MAC 计算。

这提供了多少安全性取决于系统的其余部分,但您可以在本地保留相对静态的数据,并且仍然将配置数据放在版本控制系统中。请注意,许多版本控制系统都喜欢文本,因此您可能希望对加密的配置文件进行 base64 编码,以确保这一点。

当然,这只是众多方案之一。

于 2013-01-29T23:36:04.833 回答