特定のサイトにのみ提供したい JSON Web サービスがあります。これは、JSONP を使用して JavaScript を介して呼び出されるサービスです。許可されていないサイトがアクセスするのを防ぐ (またはせいぜいアクセスをより困難にする) にはどうすればよいでしょうか? ユーザー/パスワードの要求は機能しません。これは、JavaScript で明白に表示されるためです。
例: 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 はコピー/貼り付けできません。問題は、一意のキーを生成するページを保護する website.com/webpage.com に移ります。
より良い解決策はありますか?