将敏感数据保存在未推送的分支中是否安全?

时间:2017-05-29 07:37:12

标签: git security privacy

Suppoe我在git工作,我创建了一个名为sensitive的分支,并在sensitive中提交敏感数据(例如密码,密钥)。我从未在master中提交敏感数据,我从未将sensitive合并到master,但我确实将master拉入sensitive。当我git push origin master时,是否有任何危险我会将敏感数据的blob推送到服务器?

2 个答案:

答案 0 :(得分:4)

你的问题是关于Git,但事实上,你的问题是另一回事。它(至少)有一个解决方案。

  1. 将敏感数据放入名为config的文件中,并将其名称(和路径)添加到.gitignore
  2. 创建此文件的副本,让它命名为config.dist,用虚拟数据替换敏感数据并将其添加到存储库(它绝不能包含敏感数据)。在文件的标题中说明必须将其复制为config并自定义。
  3. 让代码从config加载其配置。对于奖励积分,如果config.dist不可用,您可以加载config
  4. 提交并推送。
  5. 文件config.dist用作永远存储在repo中的实际config文件的模板。每个开发人员都可以根据需要/想要自定义他们的config文件。让config / config.dist包含从一个系统更改为另一个系统的所有信息,或者可能在项目生命周期内更改的信息(文件路径,数据库连接参数,密码等)。

    要回答您的问题,上面提出的解决方案是100%安全的(让人为错误分开)。由于config文件永远不会到达仓库,无论Git如何在内部工作,敏感数据都不会被推送到远程仓库。

答案 1 :(得分:0)

不,没有危险。如果您不考虑将敏感数据共享给可以访问您存储库的所有人。