在不共享API密钥的情况下共享github项目

在不共享API密钥的情况下共享github项目,github,api-key,Github,Api Key,我想在GitHub上与其他人共享我的项目,以便他们可以查看我的代码 但是,在项目文件中有我的API密钥,它对每个人都是可见的 这会是个问题吗 有没有办法隐藏API密钥 关于共享项目,还有什么我应该知道的吗 感谢您的任何提示或建议 但是,在项目文件中有我的API密钥,它对每个人都是可见的 是的,它们对每个人都是可见的,并且永远不应该出现在代码中 这会是个问题吗? 这会是个问题吗 在代码中硬编码秘密的问题在于,它们可能会意外地暴露在您在线托管的任何存储库的git提交中。黑客正在Github

我想在GitHub上与其他人共享我的项目,以便他们可以查看我的代码

但是,在项目文件中有我的API密钥,它对每个人都是可见的

  • 这会是个问题吗
  • 有没有办法隐藏API密钥
  • 关于共享项目,还有什么我应该知道的吗
感谢您的任何提示或建议

但是,在项目文件中有我的API密钥,它对每个人都是可见的

是的,它们对每个人都是可见的,并且永远不应该出现在代码中

这会是个问题吗?
  • 这会是个问题吗
在代码中硬编码秘密的问题在于,它们可能会意外地暴露在您在线托管的任何存储库的git提交中。黑客正在Github API端点中监听
/events
,并将立即扫描任何提交的机密,几分钟后他们可能会使用您的机密代表您访问任何第三方服务,然后您可能会有一个故事要讲,比如著名的我的2375美元亚马逊EC2错误

我最近写的一篇文章中可以找到所有这些以及更多的内容,可以找到:

以下是一些发现API密钥、令牌、密码、云凭据和其他机密的地方的示例:

  • 在提交给github、gitlab和其他在线代码存储库的代码中
  • 在云上的CI管道和自动化工具
  • 将粘贴代码复制到Stackoverflow、论坛、问题跟踪器等位置时
有没有办法隐藏API密钥?
  • 有没有办法隐藏API密钥
要从源代码中隐藏它,您只需要使用环境变量,并且通常编程语言支持它,最常见的方法是将它们放在项目根目录中的
.env
文件中。请记住,必须将此
.env
文件添加到
.gitignore
文件中,以防止您的机密泄漏到代码存储库中

通过使用Vault为代码提供机密,可以在生产部署中实现进一步的改进,例如使用Github上的项目:

Vault是安全访问机密的工具。秘密是您希望严格控制访问的任何内容,如API密钥、密码、证书等。Vault为任何机密提供统一的接口,同时提供严格的访问控制和记录详细的审核日志

关于共享项目,还有什么我应该知道的吗?
  • 关于共享项目,还有什么我应该知道的吗
通过以
security@yourdomain.com
或将您的Twitter处理程序放在自述文件中,让他们通过私人消息与您联系,但记住私人消息对任何Twitter用户开放,否则,他们将无法向您发送


您还应该在自述文件中提到,Github问题不应用于报告安全漏洞,因为这将使每个人都能看到这些漏洞。

非常感谢您的精彩解释。据我所知,使用谷歌API的最初200美元是免费的。我还需要注册计费吗?谷歌现在需要信用卡才能访问谷歌地图,这是真的吗?现在似乎是300美元,而且他们的任何服务都可以终身免费使用,你可以在这里查看。需要启用计费才能对服务进行计费,因此我认为信用卡是必要的,但只有在试用信用卡用完时才收费。请记住启用服务成本提醒,否则您可能会忘记启用任何功能,并且当您意识到您可能需要支付巨额账单时。