我想与其他人在GitHub上分享我的项目,以便他们可以查看我的代码。
但是,在项目文件中有我的API-Key,每个都可以看到。
感谢任何提示或建议。
但是,在项目文件中有我的API-Key,每个都可以看到。
是的,每个人都可以看到它们,它们永远不会放在您的代码中。
- 会不会有问题?
在您的代码中对密码进行硬编码的问题在于,它们可能会被意外地暴露在您在线托管的任何存储库的git提交中。黑客正在Github API端点/events
中进行监听,并会立即扫描任何进入秘密的提交,并在几分钟内他们可能会使用您的秘密代表您访问任何第三方服务,然后您可能会有一个故事。告诉我着名的My $ 2375亚马逊EC2错误。
所有这些以及更多内容都可以在我写的最近的文章中找到,可以找到here:
以下是一些可以找到API密钥,令牌,密码,云凭据和其他机密信息的地方的示例:
- 在提交给github,gitlab和其他代码的在线存储库的代码中。
- 在云上的CI管道和自动化工具。
- 将粘贴代码复制到Stackoverflow,论坛,问题跟踪器等地方时
- 有没有办法隐藏API-Key?
好吧,从源代码中隐藏它只需要使用环境变量,通常编程语言支持它,最常见的方法是将它们放在项目根目录的.env
文件中。请记住,必须将此.env
文件添加到.gitignore
文件中,以防止将您的机密泄露到代码存储库中。
通过使用保险库为您的代码提供秘密,可以在生产部署中实现进一步的改进,例如在Github上使用Hashicorp Vault项目:
Vault是一种安全访问机密的工具。秘密就是您想要严格控制访问的任何内容,例如API密钥,密码,证书等。 Vault为任何机密提供统一的界面,同时提供严格的访问控制并记录详细的审计日志。
- 关于共享项目我还应该知道的其他事情吗?
通过提供[email protected]
形式的电子邮件或将Twitter处理程序放在自述文件中并要求他们通过私人消息与您联系,始终让人们可以轻松联系您,以便在项目中报告安全问题,但请记得离开私人消息向任何Twitter用户开放,否则他们将无法向您发送。
您还应该在自述文件中提到Github问题不应该用于报告安全漏洞,因为这将使每个人都可以看到它们。