2011-12-28 11 views
2

RESTサービスをスムーズに作成し、json結果を返すとしましょう。APIキーでクライアント側で使用するRESTサービスの保護

また、自分のユーザーが自分のサービスと通信するためのAPIキーを実装しました。

次に、A社が私のサービスを使い始めました。私は彼らにAPIキーを与えました。

たとえば、次のように私のサービスのURLがあると仮定することができます:

https://api.myservice.com/data?apikey= {key_comes_here}

主な問題は、私はまた私自身同じRESTウェブを呼び出す必要があります私自身のウェブサイトを持っているということですサービス。私自身のRESTサービスを呼び出すときに私のWebサイトからAPIキーを渡すと、誰かがFirebugなどの使用を止め、Webアプリケーションで使用しているAPIキーを確認して同じAPIキーを使用しますか?

答えて

1

たとえば、Googleが使用する方法。 Google MapsはAPIをURLにリンクします。したがって、キーを要求したときに指定されたURLのアプリケーションでのみ、提供されたキーを使用できます。これは、Webアプリケーションで特に使用できます。ここで、サーバーで参照元URLを取得できます。

+0

リファラーはなりすますことはできませんか? http://en.wikipedia.org/wiki/Referrer_spoofing – djna

+0

これは非常にうれしいですが、モバイルデバイスからWebサービスへのアクセスを公開する必要がある場合はどうすればよいですか? –

+0

@djnaもちろん、リファラは偽装することもできますが、ウェブサイトで公開APIを公開すると、ユーザーは標準のウェブブラウザを通じてAPIにアクセスします。通常のユーザーがリファラーを偽装しなければならない場合、そのWebサイトは大部分のユーザーに対して不合格となります。ユーザーがAPIに直接アクセスできる場合は、サイトがHTTPSで保護されている場合でも、常にAPIキーが表示されます。だから、もしあなたが鍵を隠すならば、私はあなたがバックエンドシステムからサービスにアクセスすべきだと思います。ネットワークスニファからバックエンドトラフィックを保護する場合は、HTTPSを使用できます。 –