当前位置:  开发笔记 > 编程语言 > 正文

在git存储库中处理密码的最佳做法是什么?

如何解决《在git存储库中处理密码的最佳做法是什么?》经验,为你挑选了3个好方法。

我有一个小的Bash脚本,用于访问twitter并在某些情况下弹出Growl通知.什么是处理脚本存储密码的最佳方法?

我想将这个脚本提交给git repo并在GitHub上提供它,但我想知道在执行此操作时保持登录/密码私有的最佳方法是什么.目前,密码存储在脚本本身中.我无法在推送之前将其删除,因为所有旧提交都将包含密码.没有密码的开发不是一种选择.我想我应该将密码存储在外部配置文件中,但我想我会检查是否有一种既定的方法来处理这个问题,然后再尝试把它放在一起.



1> Greg Hewgill..:

执行此操作的典型方法是从配置文件中读取密码信息.如果调用了配置文件foobar.config,那么您将提交一个名为foobar.config.example存储库的文件,其中包含示例数据.要运行程序,您将创建一个foobar.config使用真实密码数据调用的本地(未跟踪)文件.

要从先前的提交中筛选出现有密码,请参阅删除敏感数据的GitHub帮助页面.


@Mr_Chimp:`.gitignore`文件不适用于*已存在于存储库中的跟踪文件.例如,`git add -u`将添加一个已更改的文件,即使它已经在`.gitignore`中.
你会如何与你的团队分享这些密码?有一件事是拥有本地副本(不承诺回购),另一件事是与更大的团队共享,即使使用自动工具(用于部署等)
顺便说一下,你可以在repo中添加一个示例foobar.config,然后将foobar.config添加到.ignore文件中.这样,克隆时将显示示例foobar.config,并且您的实际密码将不会添加到repo中.

2> scls..:

方法可以是使用环境变量设置密码(或API密钥).因此,此密码不受版本控制.

使用Bash,您可以使用设置环境变量

export your_env_variable='your_password'

这种方法可以与Travis等持续集成服务一起使用,存储在GitHub存储库中的代码(无密码)可以由Travis执行(密码使用环境变量设置).

使用Bash,您可以使用以下方法获取环境变量的值:

echo "$your_env_variable"

使用Python,您可以使用以下方法获取环境变量的值:

import os
print(os.environ['your_env_variable'])

PS:请注意它可能有点风险(但这是一种非常常见的做法)https://www.bleepingcomputer.com/news/security/javascript-packages-caught-stealing-environment-variables/

PS2:dev.to这篇题为"如何安全存储API密钥"的文章可能很有趣.



3> Prof. Falken..:

Greg说的是什么,但我补充一点,检查文件是个好主意foobar.config-TEMPLATE.

它应包含示例名称,密码或其他配置信息.然后很明显真正的foobar.config应该包含什么,而不必查看必须存在哪些值foobar.config以及它们应该具有哪种格式的所有代码.

通常,配置值可能不明显,例如数据库连接字符串和类似的东西.

推荐阅读
郑谊099_448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有