2012-05-15 22 views
7

私はブロガー/ウェブサイトの所有者によってインストールされるjavascriptプラグインを作成しています。リモートAPIと通信します。Javascriptウィジェットで使用するためのAPIを保護する

サービスにアカウントを登録したユーザーが所有するドメインだけがAPIのリソースにアクセスできるようにするために、APIを保護する方法を知りたいと思います。私はOAuth2を読んで基礎を理解していますが、プラグインはブラウザからサーバーではなくサーバーから実行されるため、これがどれくらい安全かどうかはわかりません。

mixpanel、google analytics、olarkのようなサービスは、ウェブサイト所有者が自分のサイトにJSの行をインストールするという同じ概念を使用しているため、解決された問題でなければなりません。

+0

あなたは正確に何を防止しようとしていますか? – SLaks

+0

アクセス権を持たないデータへのアクセスをユーザーが防止するためです(例:自分が所有していないか管理していないサイトのGoogleアナリティクスデータにアクセスしています。 Googleはこれを行いますが、どのようにですか? OAuthを使って? – cjroebuck

+0

いいえ。 Googleはそれをしません。 Googleアナリティクススクリプトでは、どのデータにもアクセスすることはできません。 – SLaks

答えて

3

あなたのスクリプトにwindow.locationのチェックを挿入して、他の人があなたのサーバーから直接それを含めないようにすることができます。

しかし、人々がローカルでスクリプトをダウンロードしたり、保護を解除したり、自分自身をホストしたりするのを防ぐことはできません。

すべてのサーバーサイドリクエストでAPIキーを要求できますが、敵は正当なサイトからAPIキーを簡単に盗むことができます。

+0

私のAPIと通信することなく、スクリプトはかなり役に立たなくなります。申し訳ありませんが、私の質問は多少曖昧です。私は言及したサービスがこれを実装する方法について少し混乱しています。 – cjroebuck

+0

上記のサービスのいずれも情報を返すことができません。 – SLaks

+0

SLaksは頭にそれを打つ。 GAとMixpanelウィジェットはデータを送信するだけで、特定のGAキーを使用してデータを記録することはできません。ただし、問題のデータにアクセスできない(正当なユーザーのために簡単にフィルタリングされます)。 Olarkのケースでは、データが返ってきます(つまりオペレータからのメッセージですが、セッション固有で認証されていないのでユーザー固有のものなので、同じことが適用されます(私はOlarkのエンジニアです。 SLaksが言及した理由のために最終的に役に立たないので、URL検証の一種)。 –