angular - '来自 Google 的 API 密钥公开' Angular 应用程序在 github 存储库中
问题描述
我使用 GitHub 来分享我的 Angular 7.x 源代码。我的应用程序使用“Google 服务”,因此它需要 API 密钥。我把它们放在environmnent.ts
文件里。
export const environment = {
production: false,
API_URL: '/api/v1/',
firebase: {
apiKey: '<API_KEY>',
authDomain: '<VALUE1>.firebaseapp.com',
databaseURL: 'https://<VALUE1>.firebaseio.com',
projectId: '<VALUE1>',
storageBucket: '<VALUE1>.appspot.com',
messagingSenderId: '<VALUE2>',
appId: '<VALUE3>'
}
};
Github 给我发了一条通知,内容是:Warning: GitGuardian detected an API key from Google
. 意思很明显,解决方法不行。
如何在 Angular 应用程序上使用 Google 服务(Firebase 等)而不在 GitHub 存储库上共享密钥?
先感谢您。
解决方案
如果您还没有,请撤销凭证,一旦 API 密钥在 GitHub 上公开,它就会被泄露,人们可以(并且确实)使用 GitHub 公共 API 扫描所有提交的秘密,即使它被删除,仍然有人可能找到它.
将您的秘密存储在单独的文件中,例如.env
file. 我会.gitignore
用来确保此文件不包含在您的提交中。
如果您想查看 API 的最佳实践,我会遵循GitGuardian API 最佳实践文档
如果您想确保以后不再泄露任何秘密,您可以在GitGuardian上创建一个免费帐户,他们是实际获取您泄露的 API 密钥的公司。他们还在仪表板上给出了很好的建议,如果发生这种情况该怎么办。
推荐阅读
- sql-server - 如何查找子查询字符串包含主查询字符串的行?
- curl - Curl 不显示对 HTTP 请求的响应
- go - 使用反射和动态类型附加到 go lang 切片
- android - Rails 和 React Native 与 ios/android 设备之间的网络错误
- haskell - 在 Haskell 中输入两个枚举字段
- excel - Excel VBA 中的复制粘贴
- windows - CPAN“。” 未被识别为内部或外部命令 - Windows 10
- sql-server - 计算算术字符串产生算术溢出错误
- c# - Unity - DontDestroyOnLoad() 还是公共静态变量?
- node.js - DiscordJS/MongoDB 如何让机器人正确更新值