2009-08-20 32 views
4

私は特定のサイトに提供したいだけのJSON Webサービスを持っています。 JSONPを使用してJavaScript経由で呼び出されるサービスです。許可されていないサイトへのアクセスを防止する(または、せいぜいそれを難し​​くする)にはどうすればいいですか?ユーザー/パスワードを要求することは、JavaScriptで明白に見えるため、機能しません。JSON Webサービスの保護

例:domain.comの私のWebサービスは天気情報を提供しています。私はwebsite.comとwebpage.comがアクセスできるようにしたいだけです。しかし、WebサービスはJavaScriptを介してアクセスされるため、lazywebsite.comはWebサイト/ Webページのソースを表示し、JavaScriptコードをコピー/貼り付けることができます。

私の考え、これまで:

  • APIキーを使用してサービスがからアクセスされた場合のHTTP_REFERERを記録。 HTTP_REFERERは信頼できないため、これは理想的ではありません。
  • website.com/webpage.comは、私が提供するアルゴリズムを使用してサーバー側で独自のキーを生成し、セッションで保存し、これをキーとしてWebサービスにアクセスします。この方法では、トークンはその特定の訪問者にのみ登録され、JSはコピー/ペーストすることができません。この問題はWebサイト/ Webページに移行し、ユニークキーを生成するページを保護します。

もっと良い解決策はありますか?

答えて

4

完璧な方法はありません。

あなたがセキュリティを真剣に考えるならば、ソリューションはあなたのJSONサービスを世界中に公開しないことです。非公開にして、website.comとwebpage.comに、自分のサーバーから自らのバックエンド要求を自分のものにする必要があります。次に、あなたはあなたが望むものすべてを認証することができ、秘密はサーバコードで安全に留まります。基本的にプロキシソリューションです。 (1つの優れた利点:JSONデータはWebサイトと同じ起源を持つようになりました。つまり、JSONPハックを行う必要はありません)。

セキュリティについて深刻ではなく、ただ難しくしたいのであれば、すでにレイアウトした最も簡単なものです。リファラーを確認してください。そのヘッダーは偽装することができますが、それは痛みです。ほとんどの攻撃者はそれを試すとは思わないでしょう。また、パスワードやAPIキー(同等)を必要とし、Javascriptの中で難読化することで難しくなります。

-2

この古い質問へのアップデートとして、セキュリティのためにfacebookとtwitterのjavascript APIが何をするのかを見てみることをお勧めします。

関連する問題