如何在 github 页面的公共存储库中安全地存储 google maps api 密钥?

问题描述 投票:0回答:3

我找到了不错的 jekyll 模板: https://github.com/volny/stylish-portfolio-jekyll

它试图呈现一个谷歌地图,它需要谷歌地图 api 密钥,它希望存储在

_config.yml

# API settings
google_api_key:

这似乎不是最安全的存储密钥的方法,因为任何人都可以看到并使用它。 如何安全地将 google maps api 密钥存储在 github 页面的公共 repo 中?

google-maps jekyll github-pages api-key
3个回答
8
投票

简短的回答是:你不能.

根据设计,Google Maps Embed API 希望您在请求地图的 URL 中包含 API 密钥(您可以查看您提到的模板的源代码

这意味着您的 API 密钥将始终在浏览器中呈现的结果 HTML 文件中可见。

只有 Google 可以 try 阻止其他人使用您的 API 密钥(例如,通过检查提供地图的站点的 URL)。你无能为力。

谷歌所能做的就是让某人更难重用API密钥。他们无法以可靠的方式真正阻止它。这只是网络运作方式的本质。访问您网站的人将是请求地图的人 - 因此,例如,您不能限制可以调用 API 的人的 IP 地址,除非您确切知道这些用户是谁(如果您的网站是公共网站,这是你的情况)。


2
投票

不幸的是,在公共存储库中存储 api 密钥确实没有安全的方法。

请参阅在公共存储库中隐藏密钥以进行进一步讨论。


-1
投票

还是没有解决办法?

我在 Github Pages 上有一个博客,是我用 Quarto 构建的。该存储库在 Github 上公开。我计划发布一篇博文,其中包含需要 Google 地图 API 的交互式 Google 地图。然而,由于博客是免费的,因此存储库需要公开。我尝试将文件夹和单个文件添加到 gitignore(对于其他文件和文件夹),但 gitignore 似乎确实忽略了这些行。

长话短说,我怎样才能发布一篇包含使用 Google Map API 的交互式 Google Map 的博文,同时又不会因为公开而危及 API?

© www.soinside.com 2019 - 2024. All rights reserved.