如何保护我的 api 密钥?

lok*_*oki 5 google-maps google-api api-key google-maps-api-3 google-maps-android-api-2

我想从我的 android/ios 应用程序中使用自动完成 api。为此,我需要像这样调用 url:

https://maps.googleapis.com/maps/api/place/autocomplete/json?input=paris&key=<myapikey>
Run Code Online (Sandbox Code Playgroud)

问题是:什么可以让其他人不会从我的应用程序中提取我的 api 密钥并将其用于自己的目的?这很重要,因为最后由谷歌支付使用费用的是我......

xom*_*ena 1

您的意图是调用 Places API Web 服务。Google 地图网络服务仅支持 IP 地址限制。

您可以在以下页面查看每个 API 支持什么类型的限制:

https://developers.google.com/maps/faq#keysystem

为了保护与示例请求一起使用的 API 密钥,您应该创建一个中间服务器并从该服务器发送您的请求。因此,您的应用程序应该向中间服务器发送请求,中间服务器应该向 Google 发送带有受保护 API 密钥的地点自动完成请求,并将响应传递回您的应用程序。在这种情况下,您可以使用中间服务器的 IP 地址来保护 API 密钥的未经授权的访问。

我希望这有帮助!

  • 感谢您的帮助,但问题将简单地转移到中间服务器:(小偷只需在他的应用程序中使用我的中间服务器的 url,而不是 google api 服务器的 url ...正如我所见,他们是对于这样的问题根本没有解决方案,所以我不明白它是如何工作的:(给我任何使用谷歌地图API的应用程序/网站,我可以通过大大增加他们的谷歌帐户账单来轻松地让他们下来! (2认同)