誰かがキーと有効なリファラーを持っている場合、リファラーヘッダーが設定されている限り、どのクライアントからでもAPIキーを使用できますか?
この制限を使用する価値はありますか?
すべてのセキュリティ対策はトレードオフです。コントロールのコストは、保護されているものの価値よりも多かれ少なかれ価値があり、攻撃者に強制する作業の量はどれくらいですか。
荷物をロックすると、何気ない泥棒がバッグを開けて何かをつかむのを防ぐことができますが、誰かがバッグを盗むのを防ぐことはできません。しかし、コストは低いため、依然として有用なセキュリティ管理です。
したがって、悪意のあるエージェントcouldがリファラーヘッダーをコピーしたからといって、そのための時間や傾向がない場合があります。有効なリファラーヘッダーは、コンサートリストバンドのようなものです。それらを偽造したり、リストバンドをチェックしている警備員の周りに忍び込んだりできますか?もちろん可能ですが、バンドが役に立たなくなるわけではありません。
攻撃者のコストが上昇します。
同様に、標準の、変更されていない、正常に動作するアプリケーションは、最後のページについての真実を伝え、APIアクセスを正しく拒否します。たぶん、あなたのサービスを悪用しようとする誰かが、あなたがサーバー上のリファラーヘッダーをチェックしていることを知らず、あきらめるでしょう。
したがって、OPの質問に対する「価値がある」という答えは、あなたしかできない価値の判断です。リファラーを確認するのにどのくらいの労力がかかりますか?おそらくそれほどではありません。 APIキーの使用を保護することはどれほど価値がありますか?おそらくもっと。攻撃者の邪魔になるスピードバンプに見合うだけの労力はありますか?
最後の1つはあなたの呼び出しです。
HTTPリファラーによってgoogle APIキーを制限する意味は何ですか?
Webアプリケーションは、要求を発行するときにそのリファラーを簡単に偽造することはできません。したがって、許可される参照元を特定のリストに制限すると、他のWebサイトが独自のWebサービスにAPIキーを使用できなくなり、APIクォータを利用できなくなります。これは、活用すべき便利な機能です。
ただし、独自のリファラーヘッダーを設定できるアプリケーションは、明らかにこの制限の影響を受けません。 Webアプリケーションを保護することのみを目的としています。
「リファラー」は、呼び出し元のサイトのアドレスを含むようにブラウザーによって設定されているため、Webサイトのアドレスのみを許可することでGoogle APIへのアクセスを制限すると、他の人がキーを使用してAPIからAPIを呼び出すことができなくなりますリファラーが一致しないため、サイト。
「有効なリファラーを持っている」人は、通常、自分のサイトではそれを使用できません。これは、リファラーヘッダー できない がブラウザーでプログラムによって変更されるためです。これにより、ユーザーがキーを盗んでHTMLに追加するのを防ぐことができます。
しかし、リファラーは確実にサーバーで変更できます。ここで、リクエスト内の何でも自由に変更できます。したがって、ハッカーは自分のWebサイトからすべてのAPIリクエストを受信し、リファラーを盗まれたキーで許可されているものに変更した後、それらをGoogleに転送する「中間者」として機能するある種のプロキシを設定できます。
Googleはこれを認識しており、同じIPアドレスからの呼び出しの数をチェックするなど、他の対策を講じていると確信しています。しかし、その後、ハッカーは何百もの安価なプロキシを使用して通話を分散し、チェックをバイパスすることができます。
結論として、リファラーヘッダーは、誰かがこの保護を回避するために何らかの努力を払うことを選択しない限り、APIキーを保護するための賢明で簡単な方法です。また、最近のAPIコストの急増により、その可能性は非常に高いと思います。あなたは彼らがあなたのものを盗まないことを望んでいるだけです。
だれでもクライアントAPIキーを使用できるようにする場合、基本的に誤用を防ぐ方法はありません。これは、一部の人々を抑止する可能性があるほど十分に煩わしいものにします。それを有効にするのに害はありませんが、決心している人を止めるとは思いません。これは、オンラインビデオゲームの防汚対策のようなものです。
意見:Google Cloud Platformでさえ、多くの場所を見てきましたが、このHTTPリファラー制限が保証することについて十分に明確ではありません。