orl*_*rlp 21 git sensitive-data
当你将代码保存在公共git仓库中时,如何处理秘密API密钥,哈希盐等敏感数据?
显然,将敏感数据保留在代码中会对其造成损害.
另一种解决方案是不对代码中的秘密信息进行硬编码,而是将其存储在独立文件中并对文件进行gitignore.这样做的缺点是,当有人第一次提取您的代码时,秘密信息将会丢失,并且不会开箱即用.这可以通过在代码中编写"初始化,如果缺少"例程来解释,但是然后你让git系统滑入你的代码,这对IMO来说不是一件好事.
另一个解决方案是制作一个"默认"秘密信息文件,在项目开始时提交它,然后使用您自己的信息而不提交它.但这可能会让git抱怨你在拉动时有未提交的更改.
那么处理这个问题的常用方法是什么?
尝试将.gitattributes用于配置了加密/解密过滤器的路径:
*secure.yml filter=crypt
Run Code Online (Sandbox Code Playgroud)
并在.git/config中添加crypt过滤器的配置:
[filter "crypt"]
clean = openssl enc ...
smudge = openssl enc -d ...
required
Run Code Online (Sandbox Code Playgroud)