如何将 Google API 键限制为单个服务?
How to restrict a Google API key to a single service?
我在 Google API Console 做了一个项目。该项目使用 2 项服务:YouTube 数据 API 和 Google 地图 JavaScript API。第一项服务是服务器到服务器的,因此 API 密钥不会暴露。第二项服务是客户端到服务器的,因此公开了一个 API 密钥(以 HTML 代码发送到浏览器)。如果我对地图 API 和 YouTube API 使用相同的密钥,用户可以拿走密钥并使用它代表我与 YouTube 互动(这是一个问题)。
一种解决方案是为 API 使用单独的密钥。我怎样才能获得允许与地图 API 一起使用但不允许与 YouTube API 一起使用的 API 密钥?
这些是 Google API 当前提供的主要限制:
None
HTTP referrers (web sites)
IP addresses (web servers, cron jobs, etc.)
Android apps
iOS apps
为防止未经授权的使用和配额盗用,请限制您的密钥。密钥限制允许您指定哪些网站、IP 地址或应用程序可以使用此密钥。了解更多信息:https://support.google.com/googleapi/answer/6310037?hl=en
因此您可以设置您的密钥,以便它只能从您的域(通过将 HTTP 引荐来源网址设置为您的网页)或 IP 地址使用。上述 link 的最佳实践。
在 Google API 控制台中创建两个项目:
- 一个启用了服务器到服务器 API 的项目 (YouTube API)。项目 API 密钥仅在服务器上使用,未公开。
- 启用客户端到服务器 API 的项目(Google 地图 API)。项目 API 密钥已公开但无法用于访问 YouTube,因为项目中未启用 YouTube API。
我在 Google API Console 做了一个项目。该项目使用 2 项服务:YouTube 数据 API 和 Google 地图 JavaScript API。第一项服务是服务器到服务器的,因此 API 密钥不会暴露。第二项服务是客户端到服务器的,因此公开了一个 API 密钥(以 HTML 代码发送到浏览器)。如果我对地图 API 和 YouTube API 使用相同的密钥,用户可以拿走密钥并使用它代表我与 YouTube 互动(这是一个问题)。
一种解决方案是为 API 使用单独的密钥。我怎样才能获得允许与地图 API 一起使用但不允许与 YouTube API 一起使用的 API 密钥?
这些是 Google API 当前提供的主要限制:
None
HTTP referrers (web sites)
IP addresses (web servers, cron jobs, etc.)
Android apps
iOS apps
为防止未经授权的使用和配额盗用,请限制您的密钥。密钥限制允许您指定哪些网站、IP 地址或应用程序可以使用此密钥。了解更多信息:https://support.google.com/googleapi/answer/6310037?hl=en
因此您可以设置您的密钥,以便它只能从您的域(通过将 HTTP 引荐来源网址设置为您的网页)或 IP 地址使用。上述 link 的最佳实践。
在 Google API 控制台中创建两个项目:
- 一个启用了服务器到服务器 API 的项目 (YouTube API)。项目 API 密钥仅在服务器上使用,未公开。
- 启用客户端到服务器 API 的项目(Google 地图 API)。项目 API 密钥已公开但无法用于访问 YouTube,因为项目中未启用 YouTube API。