如何处理公共git回购中的敏感数据?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (23)

当你将代码保存在公共gitrepo中时,如何处理敏感数据,如秘密API密钥、哈希盐类?

很明显,将敏感数据保存在代码中会损害它。

另一种解决方案是不对代码中的秘密信息进行硬编码,而是将其存储在独立的文件中,并赋予该文件。这有一个缺点,当有人第一次提取你的代码时,秘密信息就会丢失,而且它不会从盒子里跑出来。这可以通过在代码中编写一个“初始化(如果丢失了)”例程来解释,但是接下来你会让git系统溜进你的代码中,这不是件好事。

另一个解决方案是创建一个“默认”的秘密信息文件,在项目开始时提交它,然后使用你自己的信息而不提交它。但这可能会让Git抱怨你拉的时候有了一些没有付诸实施的改变。

那么,处理这件事的共同方法是什么呢?

提问于
用户回答回答于

可以说,你不应该将这些属性硬编码到您的源代码中,因为管理员希望在给定的系统上更改它们。如果这些属性位于属性文件中(例如,在您的主目录中),那么问题就解决了。

对于可能遇到麻烦的用户,可以签入一个默认文件,他们可以将该文件复制到自己的主文件夹并进行修改。如果错误消息和自述文件在丢失这个特定文件的主题上是明确的,那么这个设置将运行得很好。

用户回答回答于

试着使用.gitproperties对于使用配置的加密/解密筛选器的路径:

*secure.yml filter=crypt

并在.git/config中添加用于加密过滤器的配置:

[filter "crypt"]
    clean = openssl enc ...
    smudge = openssl enc -d ...
    required

扫码关注云+社区