首页 > 解决方案 > '来自 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 存储库上共享密钥?

先感谢您。

标签: angulargithubconfiguration

解决方案


如果您还没有,请撤销凭证,一旦 API 密钥在 GitHub 上公开,它就会被泄露,人们可以(并且确实)使用 GitHub 公共 API 扫描所有提交的秘密,即使它被删除,仍然有人可能找到它.

将您的秘密存储在单独的文件中,例如.envfile. 我会.gitignore用来确保此文件不包含在您的提交中。

如果您想查看 API 的最佳实践,我会遵循GitGuardian API 最佳实践文档

如果您想确保以后不再泄露任何秘密,您可以在GitGuardian上创建一个免费帐户,他们是实际获取您泄露的 API 密钥的公司。他们还在仪表板上给出了很好的建议,如果发生这种情况该怎么办。


推荐阅读