【问题标题】:Hide API keys from github public repo从 github 公共存储库中隐藏 API 密钥
【发布时间】:2021-02-15 18:48:07
【问题描述】:

我正在寻找一种方法来防止 api 密钥等出现在公共回购中。 (它的托管位置实际上并不重要)

所以我知道常见的解决方案是将包含 api 密钥的文件添加到 .gitignore 中,这样它基本上永远不会被提交到 repo。

问题是我宁愿提交文件,但用“YOUR API KEY HERE”之类的文本替换密钥本身。

我发现 this 回答建议使用 git filter 分支,但它似乎真的很受欢迎,并不真正推荐。

还有其他方法可以实现吗?有什么方法可以确保 git filter branch 真正起作用?有什么办法可以追溯吗?应该在 git add 之后还是之前完成?

【问题讨论】:

    标签: git version-control gitignore api-key git-filter-branch


    【解决方案1】:

    您建议的是合理的方法:使用配置文件和填充或占位符数据创建一个模板文件,然后将其复制到您想要的位置,该位置在.gitignore 中列出。如果您愿意,您实际上可以有一个脚本来生成文件并提供 API 密钥作为命令行参数或从环境中提供。

    另一种方法是始终从环境中导入配置,而根本不将配置写入磁盘。在许多环境中,这可以使用像 Vault 这样的加密秘密存储来完成,但也有其他选择。

    这两种方法根本不会提交秘密,因此您不必担心它们最终会出现在代码库中。如果它们已经在代码库中,那么您将需要使用 git filter-branch 或类似工具将它们过滤掉,或者只是旋转它们并假设旧值已被破坏(您可能应该首先假设)。

    【讨论】:

      【解决方案2】:

      你读过.git/info/exclude吗?它在同一 manpage as gitignore 上进行了描述,基本上允许您在存储库级别本地指定您不希望 Git 看到的模式。这里的模式语法和.gitignore一样。

      这将允许您最初提交占位符配置文件,然后在本地修改 .git/info/exclude。然后,您可以安全地将实际 API 密钥放入该文件中 - 执行此操作时,运行 git status 以确认您的配置文件更改被排除在外。

      还有一个关于这个here的问答。

      【讨论】:

        猜你喜欢
        • 2021-04-07
        • 1970-01-01
        • 2021-08-18
        • 2021-02-12
        • 2019-10-20
        • 2011-04-27
        • 2014-05-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多