IonicアプリでGoogle Maps APIキーを保護するにはどうすればよいですか?


8

AndroidおよびiOS用にIonic PWAアプリを公開しています(ネイティブビルドを生成するためにCapacitorを使用しました)。フロントエンドコードでは、Google Maps APIキーを持っていますが、Googleが提供するオプションに制限することはできません...

  1. HTTPリファラー -パブリックドメイン名ではなく、ネイティブアプリのウェブビュー内のローカルホストにあります。http://localhost/Androidおよびcapacitor://localhost/iOSの場合。これらは非常に一般的なものであり、他のすべてのアプリは同じものであるため、制限としてこれらを使用することは安全ではないようです。

  2. IPアドレス -明らかな理由。

  3. Androidアプリ -ネイティブコード内ではなく、ウェブビュー内にあります。
  4. iOSアプリ -ネイティブコード内ではなく、ウェブビュー内にあります。

    ここに画像の説明を入力してください

これらのオプションはどれも私の状況では機能しません。では、どうすれば乱用からAPIキーを保護できますか?

何か案は?Ionicアプリ内でGoogle Maps APIを使用するのは私だけではありません。


ネイティブのGoogleMapを使用し、このリンクをたどると、baadiersydow.com

これがコンデンサを使用するポイントのすべてです。ネイティブを使用する必要はありません。
nachshon f

回答:


4

コンデンサーアプリのホスト名を設定できます

"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",
  }

次に、APIキーを capacitor://unique-app

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


問題が発生しています...製品版用にビルドした後、iOSでアプリが開き、空白の白い画面が表示されます。これは、カスタムホスト名を設定した場合にのみ発生します。
nachshon f

3

APIキーを保護するにはwindow.location.href、Webビュー内のの値を確認する必要があります。のようなものになると思いますfile://some/path

したがって、このパスにHTTPリファラー制限を適用する必要があります。file://プロトコルを使用したURLには、で説明されているように、特別な表現が必要です。

https://developers.google.com/maps/documentation/javascript/get-api-key#restrict_key

注: file://リファラーをキー制限に追加するには、特別な表現が必要です。「file://」の部分は、キー制限に追加する前に「__file_url__」に置き換える必要があります。たとえば、「file:/// path / to /」は「__file_url __ // path / to / *」の形式にする必要があります。file://リファラーを有効にした後は、使用状況を定期的にチェックして、期待どおりであることを確認することをお勧めします。

これがお役に立てば幸いです。


私はCapacitorを使用しており、localhost /(android)とコンデンサ:// localhost /(iOS)を使用してWebビューをプルアップします。これらは非常に一般的なものであり、他のすべてのアプリは同じものであるため、制限としてこれらを使用することは安全ではないようです。提案?
nachshon f
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.