如何在移动应用程序中限制Google Map API密钥?

时间:2018-12-21 13:55:45

标签: android iphone cordova google-maps-api-3 http-referer

我有一个cordova / ionic移动应用程序,它使用https://maps.googleapis.com/maps/api/js?key=AndroidKeyhttps://maps.googleapis.com/maps/api/js?key=iOSKey将google maps(在index.html主文件中)加载到该应用程序(android和ios)中。每个键都受到“应用程序”限制的锁定,无法使用。我发现只能通过HTTP引荐来源网址或服务器IP锁定网络服务api。

但是由于地图是直接通过客户端加载的,因此没有域或服务器IP的HTTP引荐来源网址...还有其他方法可以锁定API密钥吗?

我可以使用类似https://github.com/wymsee/cordova-HTTP的东西来创建HTTP引用程序吗?如果可以的话,我可以创建哪种合法的域名引荐来源网址,以解决Google Maps api HTTP引荐来源网址的限制?

1 个答案:

答案 0 :(得分:1)

当使用cordova-plugin-ionic-webview (docs)时在离子3/4/5中,引荐来源网址为iOS的ionic://localhost和Android的http://localhost

  • 第一个解决方案是自定义方案和/或主机名-这听起来像是一个合理的选择,因为这样可以将引荐来源网址设置为https://mobileapp.author.domain.com/之类的东西,而该网站不容易被网站窃取(另一个应用程序可以可能设置相同)。
  • 类似地,可以使用电容器"server": {"hostname": "mobileapp.author.domain.com"}(按照此SO答案:How to protect Google Maps API key on Ionic app?
  • quick'n'dirty选项是添加*://localhost/*作为网站限制-这是我发现将ionic://localhost/引荐来源网址列入白名单的唯一方法。这也适用于使用capacitor://localhost/
  • 的电容器