fst*_*ang 21 html javascript google-maps google-maps-api-3
根据https://developers.google.com/maps/documentation/javascript/tutorial#HTML5,似乎我可以将以下标记添加到我的html并开始使用maps js API.
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
</script>
Run Code Online (Sandbox Code Playgroud)
但这将揭示我的API密钥.
在google上搜索并在stackoverflow上浏览答案后,我觉得可能没有必要隐藏此API密钥.我只需要在谷歌上创建API密钥时设置引用,如 /sf/answers/157941871/中所述
因此,即使其他人知道我的API密钥,他们也无法从其他域使用它.我对吗?
但Google表示您不应在代码中嵌入API密钥:https: //support.google.com/cloud/answer/6310037
那么,在使用谷歌地图js API时是否需要隐藏API密钥?如果是这样,怎么样?
更新:通过'API密钥',我的意思是浏览器API密钥.
Mat*_*nen 12
Google地图有多种类型的API密钥.有嵌入客户端库的浏览器密钥,可以向人们展示(你需要在客户端使用它,所以你无论如何都无法避免).然后是服务器端密钥,用于诸如地理编码服务之类的事情.应该保密.
只需确保您使用的是浏览器密钥.
尽管以上回答很有帮助,但它们都没有解决以下漏洞:
一旦用户可以访问您的API密钥,即使仅限于仅在您的域中使用它,他们仍然可以随意使用它。从最粗略的意义上讲,这可能意味着在非常短的时间内刷新一百万页(并加载地图),因此使您超出了使用配额。
我还没有遇到任何解决此问题的解决方案。除非我错过了什么...?
此处有关Google Maps JavaScript API的相关使用限制。
您在步骤 2 中用于构建接口的 3rd 方库可能会强制您使用某些主机,或者可能会强制您包含 API 密钥。对于第一个问题,您必须编辑其库代码,或者为第 3 方客户端库提供不同的 http 请求库,例如fetch()在 javascript 中重新定义函数。对于第二个问题,只需添加一个垃圾密钥,您的代理服务器就可以忽略它并用真正的密钥重写它。
我想提一下,这本质上就是“@OLTO 和 SUGI-cube 项目”试图在他们的答案中展示的内容,以及 #Brandon Miller 在评论中建议的解决方案。
您发布的链接说您不应在代码中嵌入 API 密钥与 Google 的云平台有关。您可以在代码中保留 Google 地图的 API 密钥。
| 归档时间: |
|
| 查看次数: |
14492 次 |
| 最近记录: |