如何在 github 页面的 public 存储库中安全地存储 google 映射 api 键?
How to safely store google maps api key in public repo for github pages?
我找到了不错的 jekyll 模板:
https://github.com/volny/stylish-portfolio-jekyll
它试图呈现一个 google 映射,它需要 google 映射 api 键,它希望存储在 _config.yml
:
# API settings
google_api_key:
这似乎不是最安全的存储密钥的方法,因为任何人都可以看到并使用它。
如何在 github 页面的 public 存储库中安全地存储 google 映射 api 键?
不幸的是,确实没有一种安全的方法可以将 api 密钥存储在 public 存储库中。
有关进一步讨论,请参阅 Hide secret key in public repository。
简短的回答是:你不能。
根据设计,Google Maps Embed API 希望您在请求地图的 URL 中包含 API 键(您可以观察到在 source code of the template your mentioned)
这意味着您的 API 密钥将始终显示在浏览器中呈现的结果 HTML 文件中。
只有 Google 可以 尝试 来防止其他人使用您的 API 密钥(通过检查 URL例如,正在提供的地图)。没办法。
Google 所能做的就是让某人更难 重用 API 密钥。他们无法以可靠的方式真正阻止它。这只是网络运作方式的本质。访问您网站的人将是请求地图的人 - 因此,例如,您不能限制可以调用 API 的人的 IP 地址,除非您确切知道这些用户是谁(如果您的网站是 public 网站,这就是您的情况。
我找到了不错的 jekyll 模板: https://github.com/volny/stylish-portfolio-jekyll
它试图呈现一个 google 映射,它需要 google 映射 api 键,它希望存储在 _config.yml
:
# API settings
google_api_key:
这似乎不是最安全的存储密钥的方法,因为任何人都可以看到并使用它。 如何在 github 页面的 public 存储库中安全地存储 google 映射 api 键?
不幸的是,确实没有一种安全的方法可以将 api 密钥存储在 public 存储库中。
有关进一步讨论,请参阅 Hide secret key in public repository。
简短的回答是:你不能。
根据设计,Google Maps Embed API 希望您在请求地图的 URL 中包含 API 键(您可以观察到在 source code of the template your mentioned)
这意味着您的 API 密钥将始终显示在浏览器中呈现的结果 HTML 文件中。
只有 Google 可以 尝试 来防止其他人使用您的 API 密钥(通过检查 URL例如,正在提供的地图)。没办法。
Google 所能做的就是让某人更难 重用 API 密钥。他们无法以可靠的方式真正阻止它。这只是网络运作方式的本质。访问您网站的人将是请求地图的人 - 因此,例如,您不能限制可以调用 API 的人的 IP 地址,除非您确切知道这些用户是谁(如果您的网站是 public 网站,这就是您的情况。