web-dev-qa-db-ja.com

Google Maps js APIキーを自分のドメインのみに制限する

私のサイトはGoogle Maps JavaScript APIを使用しているため、「ブラウザーキー」を使用しています。これは、「ソースの表示」を行うすべてのユーザーにJavaScriptで明確に表示されます。

JavaScriptアプリのブラウザキーに関するGoogleのドキュメント( https://support.google.com/cloud/answer/6158862?hl=ja&ref_topic=626249 )には、「アプリケーションの場合はブラウザキーを作成して使用するWebブラウザなどのクライアントで実行されます。不正なサイトでキーが使用されないようにするには、管理しているドメインからの紹介のみを許可してください。」

残念ながら、最後の文で彼らが言うことを実装する方法についての指示はありません(ブラウザキーのドメインを制限します)。私はメニューを探し回っていましたが、その方法を理解できませんでした。

最も近いのは:In https://console.cloud.google.com ハンバーガーをクリックして「API Manager」を選択し、「Credentials」をクリックして、タブをクリックした「ドメイン検証」というラベルが付いています。それが適切な場所であるかどうかはわかりませんが、ドメインについて言及している唯一の場所です。そのタブで「ドメインを追加」をクリックして、ドメインを追加しました。しかし、それはそのドメインへのキーを制限しませんでした。別のドメインでブラウザキーをテストしましたが、そのキーは他のドメインで機能しました。

ブラウザキーを1つのドメインからのみ使用可能にする方法について、手順を追って説明できますか?

6
Mike W

Googleは時々これを変更しますが、変更するたびに、各設定の場所を「再検索」する必要があります。

だからあなたは一人じゃない!

ブラウザキーは本質的に「公開」されており、盗難から保護するためにドメインによって制限されるべきだというのは正しいことです。もし誰かがあなたの無料のAPIリクエストの制限を使い果たして(もちろん課金プランになっていないと仮定して)盗まれて、あなたのサイトからのリクエストが拒否されるなら、最悪の事態に注意する価値があります。その後、キーを削除して、新しいキーを作成しても問題はありません。しかし、もちろん、これを完全に避ける方がはるかに良いです!

ドメインからのAPIリクエストのみを制限するには、 Google API Console から始めて、次のようにします。

  1. 左上のハンバーガーメニューをクリックします
  2. API Managerをクリックします
  3. 資格情報をクリックします
  4. プロジェクトを選択または作成します
  5. [認証情報の作成]をクリックし、APIキーとブラウザキーを選択します
  6. キーの名前を入力します(これはあなたがキーを識別するためのものです)
  7. これらのHTTPリファラー(ウェブサイト)からのリクエストを受け入れる場合、ここでキーをドメイン名に制限します-*.domain.com/*を入力できますドメインのカバーanything
  8. 作成をクリックします

既に作成したキーを編集する場合は、上記の手順5と6の代わりにキーの名前をクリックするだけで、ドメイン名を入力するための同じフィールドが表示されます。

ドメインの確認により、Googleは Search Console でドメインの所有権を確認済みであることを確認します。これにより、Googleは一部のAPIに必要と思われるフックをドメインに送り返すことができます(私が一般的に使用しているのはJavaScript Maps APIかどうかわかりませんが、これはかなり単純です!)

7
Tim Malone