如何安全地使用 Google API 密钥
How do I securely use Google API Keys
所以我在我正在做的第一个项目中使用 Google 地图 API...所以是的,我是新手,如果这是基本的或明显的,我很抱歉,但我没有一直未能找到明确的答案或方向。以下是我从 Google 中找到的关于安全使用 API 密钥的文档。
安全使用 API 密钥的最佳实践
当您在应用程序中使用 API 密钥时,请注意保护它们的安全。公开您的凭据可能会导致您的帐户遭到泄露,这可能会导致您的帐户产生意外费用。为确保您的 API 密钥安全,请遵循以下最佳做法:
不要直接在代码中嵌入 API 键:嵌入在代码中的 API 键可能会意外暴露给 public——例如,如果您忘记删除您共享的代码中的密钥。与其将 API 键嵌入应用程序,不如将它们存储在环境变量或应用程序源代码树之外的文件中。
不要将 API 密钥存储在应用程序源代码树内的文件中:如果将 API 密钥存储在文件中,请将文件保存在应用程序源代码树之外,以帮助确保您的密钥不会最终出现在源代码中控制系统。如果您使用 public 源代码管理系统(例如 GitHub),这一点尤为重要。
限制您的 API 密钥仅供需要它们的 IP 地址、引荐来源网址和移动应用程序使用:通过限制可以使用每个密钥的 IP 地址、引荐来源网址和移动应用程序,您可以减少影响一个受损的 API 密钥。您可以指定可以从控制台使用每个密钥的主机和应用程序,方法是打开“凭据”页面,然后使用所需设置创建新的 API 密钥,或编辑 API 密钥的设置.
删除不需要的 API 键:为了尽量减少您受到攻击的风险,请删除您不再需要的所有 API 键。
定期重新生成 API 密钥:您可以从 Cloud Platform Console Credentials 页面为每个密钥单击重新生成密钥,从而重新生成 API 密钥。然后,更新您的应用程序以使用新生成的密钥。在您生成替换密钥后,您的旧密钥将继续使用 24 小时。
在 public 发布之前检查您的代码:确保您的代码不包含 API 密钥或任何其他私人信息,然后再 public 发布您的代码。
现在我的问题是,如果不直接将其放入代码中,我不知道如何将 Google 地图合并到我的网站上。现在我的 API 在我的 index.html 中是这样的:
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
</script>
但是这又是直接在我的代码中让全世界看到的,我认为这是错误的方式。
对于 Google 地图 Javascript API v3,您页面上的键 必须 public。
适用的文字是:
Restrict your API keys to be used by only the IP addresses, referrer URLs, and mobile apps that need them
转到 Google API 控制台并生成一个密钥,将其限制为您拥有(或想要放置地图)的 URL 以防止配额 "theft"。
您提到的 API key best practices article 仅提供了使用 API 键的一般指南,以及某些面向 API 的最终用户,例如 Google 地图JavaScript API,您无法避免将 API 密钥暴露给最终用户。
因此,在 public 地图 JavaScript API 应用程序中,强烈建议对生产系统中使用的任何密钥添加引用限制,尤其是 public一个,并且只授权您的应用的域、主机甚至完整文件 URL。
当您在 Google API Console 中创建密钥并选择地图 JavaScript API 的设置凭据时,向导将指导您如何保护密钥,并将提示您输入要授权的 URL 个。
所以我在我正在做的第一个项目中使用 Google 地图 API...所以是的,我是新手,如果这是基本的或明显的,我很抱歉,但我没有一直未能找到明确的答案或方向。以下是我从 Google 中找到的关于安全使用 API 密钥的文档。
安全使用 API 密钥的最佳实践
当您在应用程序中使用 API 密钥时,请注意保护它们的安全。公开您的凭据可能会导致您的帐户遭到泄露,这可能会导致您的帐户产生意外费用。为确保您的 API 密钥安全,请遵循以下最佳做法:
不要直接在代码中嵌入 API 键:嵌入在代码中的 API 键可能会意外暴露给 public——例如,如果您忘记删除您共享的代码中的密钥。与其将 API 键嵌入应用程序,不如将它们存储在环境变量或应用程序源代码树之外的文件中。 不要将 API 密钥存储在应用程序源代码树内的文件中:如果将 API 密钥存储在文件中,请将文件保存在应用程序源代码树之外,以帮助确保您的密钥不会最终出现在源代码中控制系统。如果您使用 public 源代码管理系统(例如 GitHub),这一点尤为重要。 限制您的 API 密钥仅供需要它们的 IP 地址、引荐来源网址和移动应用程序使用:通过限制可以使用每个密钥的 IP 地址、引荐来源网址和移动应用程序,您可以减少影响一个受损的 API 密钥。您可以指定可以从控制台使用每个密钥的主机和应用程序,方法是打开“凭据”页面,然后使用所需设置创建新的 API 密钥,或编辑 API 密钥的设置. 删除不需要的 API 键:为了尽量减少您受到攻击的风险,请删除您不再需要的所有 API 键。 定期重新生成 API 密钥:您可以从 Cloud Platform Console Credentials 页面为每个密钥单击重新生成密钥,从而重新生成 API 密钥。然后,更新您的应用程序以使用新生成的密钥。在您生成替换密钥后,您的旧密钥将继续使用 24 小时。 在 public 发布之前检查您的代码:确保您的代码不包含 API 密钥或任何其他私人信息,然后再 public 发布您的代码。
现在我的问题是,如果不直接将其放入代码中,我不知道如何将 Google 地图合并到我的网站上。现在我的 API 在我的 index.html 中是这样的:
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
</script>
但是这又是直接在我的代码中让全世界看到的,我认为这是错误的方式。
对于 Google 地图 Javascript API v3,您页面上的键 必须 public。 适用的文字是:
Restrict your API keys to be used by only the IP addresses, referrer URLs, and mobile apps that need them
转到 Google API 控制台并生成一个密钥,将其限制为您拥有(或想要放置地图)的 URL 以防止配额 "theft"。
您提到的 API key best practices article 仅提供了使用 API 键的一般指南,以及某些面向 API 的最终用户,例如 Google 地图JavaScript API,您无法避免将 API 密钥暴露给最终用户。
因此,在 public 地图 JavaScript API 应用程序中,强烈建议对生产系统中使用的任何密钥添加引用限制,尤其是 public一个,并且只授权您的应用的域、主机甚至完整文件 URL。
当您在 Google API Console 中创建密钥并选择地图 JavaScript API 的设置凭据时,向导将指导您如何保护密钥,并将提示您输入要授权的 URL 个。