当我推送到 GitHub 时如何处理秘密 API 密钥,以便在克隆 repo 时我的项目仍然可以运行?

ako*_*000 6 git api-key secret-key

我有一个简单的项目,它向 API 端点发出 HTTP 请求并使用我想保密的 API 密钥。最初我将密钥放在自己的文件中,将密钥导入到使用它的文件中,并将密钥文件添加到 .gitignore。问题是如果有人克隆了 GitHub 存储库,这种方法将不起作用。

所以我的问题是 - 我怎样才能保密我的 API 密钥,但如果有人克隆了 repo,我的项目仍然可以运行?

非常感谢任何反馈。

luc*_*rot 5

最重要的是,您永远不会添加它。如果您添加了它,提交了它,然后删除了它,仍然可以通过检查旧提交来将其恢复为有权访问您的存储库的陌生人。

有了这个,你可以做什么:

  • 突出地告诉用户他们需要获取并设置自己的 API 密钥 - 甚至可能是如何做到这一点。
  • 在软件启动时添加一个检查,如果 API 密钥丢失,它会提供有用的错误消息,否则启动您的实际程序
  • 添加一个虚拟文件以显示应如何设置它。我为我的电报聊天机器人做到了这一点:从不提交secret.config,而是提交sample_secret.config,以便任何分叉您的存储库的人都可以看到他需要使用什么语法。sample_secret.config软件从未使用过,并且 API 密钥包含类似this-is-4-dummy-API-key-3232或任何有意义的密钥。
  • 创建第二个 API 密钥,该密钥可以工作,但可以被公众滥用而不会出现任何问题。设置所有内容,使其适用于任一 API 密钥,并且仅提交第二个。