Version control 源代码管理中敏感配置数据的最佳实践?

Version control 源代码管理中敏感配置数据的最佳实践?,version-control,deployment,production-environment,Version Control,Deployment,Production Environment,我见过一些解决这个问题的方法,所以我很好奇so社区对此有什么看法 如果我有用于访问生产数据库(特别是连接字符串)的配置数据: 将该信息保存在源代码控制中(例如,黑客的另一种攻击途径)是一个坏主意吗 如果你不把它保存在源代码管理中,那么你会把它保存在哪里呢 这是不是“如果他们进入了你的源代码管理服务器,你就完蛋了” 如果您担心这个问题(坦率地说,我不同意这个问题),您可以将连接字符串编码保存,并将密钥存储在其他地方(=不同的服务器) 我也不认为我应该关心它。你不担心它的理由是什么?首先-希望,如

我见过一些解决这个问题的方法,所以我很好奇so社区对此有什么看法

如果我有用于访问生产数据库(特别是连接字符串)的配置数据:

  • 将该信息保存在源代码控制中(例如,黑客的另一种攻击途径)是一个坏主意吗
  • 如果你不把它保存在源代码管理中,那么你会把它保存在哪里呢
  • 这是不是“如果他们进入了你的源代码管理服务器,你就完蛋了”
如果您担心这个问题(坦率地说,我不同意这个问题),您可以将连接字符串编码保存,并将密钥存储在其他地方(=不同的服务器)

我也不认为我应该关心它。你不担心它的理由是什么?首先-希望,如果你在一家公司工作,你的源代码管理不在公共服务器上。这样更安全一点。其次,您的生产数据库可能没有太大的价值-如果您开发的银行/电子商务应用程序或应用程序包含其他敏感数据,那么是的,但除此之外-谁会费心呢?第三,也是最重要的一点——黑客攻击你的应用程序可能比黑客攻击你的源代码控制更容易(我知道这对我的应用程序来说是真的:)“谁会麻烦”从来都不是合法的风险缓解措施,随着时间的推移,这一点变得非常明显。人们到处重复使用密码。违反一个站点可能会产生严重的级联后果。也就是说,如果您的VCS托管在一个受良好保护的服务器上,并且除此之外还实施了自己的访问控制,并且您不允许签出/克隆到非公司系统,您可能就没事了。@Novelocrat:我对您的第一点有点同意“谁会麻烦”本身并不是一个争论,也不应该被视为一个让自己不受保护的许可证。这只是考虑到你保护自己的长度。在这个问题的上下文中:您没有持有任何有价值的东西这一事实可能是您想要的非琐碎安全级别(例如,在源代码管理中保护db密码)的一个考虑因素