如何保护Ionic应用程序上的Google Maps API密钥?

nac*_*n f 6 android google-maps google-api ios ionic4

我已经发布了适用于Android和iOS的Ionic PWA应用程序(我使用Capacitor生成了本机版本)。在前端代码中,它具有我的Google Maps API密钥,但是,我不能将其限制为google提供的任何选项,因为...

  1. HTTP引荐来源网址 -它不在公共域名上,而是在本机应用程序的webview内的本地主机上。http://localhost/适用于Android和capacitor://localhost/iOS。将它们用作限制似乎不太安全,因为它们非常通用,并且所有其他应用程序将具有相同的限制。

  2. IP地址 -显而易见的原因。

  3. Android Apps-它不在本机代码中,而是在Web视图中。
  4. iOS应用程序 -它不在本机代码中,而是在Web视图中。

    在此处输入图片说明

这些选项都不适合我的情况。那么如何保护我的API密钥免受滥用?

有任何想法吗?我不能成为在Ionic应用程序中使用Google Maps API的唯一人。

小智 5

您可以配置电容器应用程序的主机名

"server": {
    // You can configure the local hostname, but it's recommended to keep localhost
    // as it allows to run web APIs that require a secure context such as
    // navigator.geolocation and MediaDevices.getUserMedia.
    "hostname": "unique-app",
  }
Run Code Online (Sandbox Code Playgroud)

然后将 API 密钥限制为 capacitor://unique-app

https://capacitor.ionicframework.com/docs/basics/configuring-your-app

  • 难道“黑客”不能创建自己的 Capacitor 应用程序,将主机名参数设置为与您相同的值吗?然后他们可以访问 API 并发送不需要的请求。还是我错了? (8认同)