【问题标题】:Should I use gitignore or "your-api-key-here" to hide api key on Github?我应该使用 gitignore 还是“your-api-key-here”来隐藏 Github 上的 api 密钥?
【发布时间】:2020-12-28 18:47:47
【问题描述】:

我完成了一个包含 API 密钥的项目,我想将它上传到 Github。我要小心不要在 Github 上公开 API Key。

我发现的两种方法是

  1. 使用 .gitignore 隐藏包含敏感信息的文件
  2. 只需将 API 密钥值更改为“YOUR-API-KEY-HERE”,然后再上传到 Github。像这样:

ApiKey="YOUR-API-KEY-HERE"

问题

如果包含我的 API 密钥的文件在 gitignore 中“隐藏”并且我将我的项目上传到 Github,这是否会导致我的项目无法被任何下载它的人正常运行,因为该项目找不到“隐藏”API钥匙?如果有人在 Github 上查看我的项目,他们是否无法访问“隐藏”文件?

在哪些情况下我应该使用 Gitignore 或“YOUR-API-KEY-HERE”方法?

【问题讨论】:

  • 理想情况下,您的 API 密钥一开始就不应该在代码库中。一个常见的选择是通过环境变量或命令行标志获取 API 密钥,CI 系统和/或部署(Kubernetes 等)代表您处理密钥。或者,API 密钥可以存储在应用程序部署时存在的文件或数据库中,而不是在开发中硬编码。

标签: git github gitignore api-key


【解决方案1】:

通常,下载您的代码的其他人需要获取自己的 API 密钥才能使您的项目运行(取决于您的项目的设置方式)。然后,他们会将 API 密钥添加到他们的 fork(作为秘密)或他们机器上的本地存储库中。

您可以通过以下方式将 API 密钥作为“秘密”安全地存储在 GitHub 存储库中:

  1. Settings 位于仓库顶部的标签
  2. Secrets 最左侧列底部附近的选项
  3. New Repository Secret
  4. Name 字段中输入 API 密钥的变量名称

示例:SECRET_API_KEY

  1. Value 字段中输入您的 API 密钥值。
  2. Add Secret

现在您只需要确保您的项目引用了 SECRET_API_KEY 变量。

注意:其他人将无法访问此 Secret。只有您作为回购所有者才能访问此密钥。其他开发人员将需要获取他们自己的 API 密钥并将其作为机密存储在他们的项目分支中。

【讨论】:

  • 当用户分叉我的项目并拥有自己的 API 密钥时,Github 是否明确要求他们在分叉后立即在他们的网站上提供密钥作为秘密,或者用户是否必须在提供密钥作为秘密的选项的网站?
  • 我很高兴和你一起测试这个。您愿意将 url 分享到您的存储库吗?我将分叉它并检查 Secrets 部分会发生什么。我的印象是我需要创建自己的 API 密钥才能让事情正常工作。如果这是我的项目,我会在 README 中明确提及,以便其他人知道。
猜你喜欢
  • 2014-02-12
  • 2014-03-23
  • 2020-08-17
  • 2016-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-11
相关资源
最近更新 更多