1

ドメインから別のドメインにデータを送信するために getJSON を使用しています。

次に例を示します。ドメイン A (www.a.com) は、jQuery getJSON() を使用してデータをドメイン B (www.b.com) に送信します。ドメイン B には、データを解析するためのすべての php スクリプトが含まれています。

セキュリティ上の理由から、データの送信者がドメイン A であり、他のユーザーではないことを確認したいと考えています。たくさんの投稿を読んで検索したところ、php の $_SERVER['HTTP_REFERER'] に出会いました。ただし、これは最善の方法ではなく、一部のブラウザーではサポートされていないと多くの人が言っていることに気付きました。

次に、Cookie とアクセス トークンを使用して別のことわざに出くわし、さらに混乱しました。誰かが私を正しい方向に向けることができることを願っています。

これは、データを dmoain B に送信するために使用している jquery スクリプトです。

$.getJSON('b.com/parse.php?data=' + data +'&callback=?', function(data) {
//do something
});
4

2 に答える 2

0

データ送信者がドメインAであり、他の人ではないことを確認したい

特定のドメインでホストされているページで実行されているJavaScriptによってリクエストがトリガーされたかどうかを確実に検出する方法はありません。

私をさらに混乱させるクッキーとアクセストークンを使用する

これは間接的なアプローチです。基本的に、プロセスは次のように機能します。

  1. 2つのサーバーの1つがアクセストークンを生成します(有効期限とともに)
  2. そのトークンを他のサーバーに送信します
  3. アプリケーションをホストしているサーバーは、そのトークンをクライアントに送信します
  4. クライアントはデータをホストしているサーバーにリクエストを送信し、そのトークンをURIに含めます
  5. データをホストしているサーバーはトークンを認識し、クライアントを承認します(トークンが自動的に存続するようにCookieを設定する可能性があります)

トークンはクライアントに提供する必要があるため、アプリケーションから引き続き抽出できます。ただし、これはクライアントへのフルアクセス権を持つ誰かが行う必要があるため、データにアクセスしたいサードパーティのWebサイトでは実行できません。

このようなWebサイトは、アプリケーションをホストしているサイトにアクセスし、識別トークンを取得してから、データをホストしているサイトにアクセスする可能性があります。これを防ぐ方法はいくつかあります…</p>

データサイトへのリクエストがサーバーによって行われている場合、特定のIPアドレスから異常に多くのリクエストを行っている可能性があります。あなたはそれをレート制限することができます。(その後、さまざまなソースIPを循環することで、これを回避できます)。

リクエストがWebブラウザによって行われている場合、トークンのリクエストは、データのリクエストとは異なるIPアドレスから送信されます。トークンの自動起動を特定のIPアドレスにロックできます。ただし、これはプロキシサーバーを介してアクセスするユーザー(たとえば、かなりの数のモバイルユーザーやAOLを使用している人々(前回、AOLのサーバーがどのように構成されているかについて聞いたことがあります))には当てはまりません。

于 2012-10-05T11:08:19.180 に答える
-1

$ _SERVER ['HTTP_REFERER']は、サーバー側であるため、より優れています。

于 2012-10-05T10:58:55.133 に答える