我在GitHub上发布了密码/ API密钥

或GitLab或任何其他公共源代码管理管理平台。怎么办?

我偶然发现了一个不断扫描的网站的GitHub,GitLab和BitBucket,这是公开托管源代码的3个最常见的位置,并向您显示已提交的SSH密码,通用服务的API密钥,数据库等。

Image of passwords

很恐怖吧?

如果从未发生过,请举手。我们会犯错误。而且,当发生这种情况时,除了快速使公开的密码或API密钥无效之外,别无其他方法。

对于新来的人吉特:您不能仅回滚提交,因为它仍将保留在存储库的历史记录中。

您的声誉,项目的声誉以及用户的安全受到威胁。

解决紧急情况后,问题是:如何预防该问题?答案是什么?有什么解决方案可以帮助我们避免将机密提交到公开可用的Git存储库?

答案是:工作流程和工具。

首先,切勿在源代码中添加API密钥或密码。他们可以安静地躲在里面。相反,请始终将它们添加到.env文件放在项目的根文件夹中,然后添加.env给你.gitignore文件,因此它将永远不会提交。使用类似的工具Dotenv访问它们。

使用git-secrets,该工具可帮助您避免向Git泄露机密。

在macOS中,您可以使用Homebrew安装它:

brew install git-secrets

然后进入要激活它的存储库,然后运行

git secrets --install

安装Git预提交钩子。这将确保工具在Git提交到存储库之前运行。

如果您使用Amazon Web Services(AWS),请运行以下命令以添加该服务凭证使用的模式集:

git secrets --register-aws

您可以立即使用扫描问题

git secrets --scan

理想情况下,该工具不应打印任何内容。但是,如果您遇到问题,它将为您提供许多详细信息。


更多git教程: