2012-01-04 16 views
3

私はjqueryプラグインを持っていますが、私はjspファイルにcrossdomainを呼び出すためにjsonpを使用しています。 データベースの特定のWebサイトにのみjspの戻り値を厳密にしたいです。 これを達成するために、私は何とかjsonp呼び出しが引き起こされたWebサイトのIPまたはURLを取得する必要があり、クライアント/ユーザーのIPは取得しません。私はHTTPヘッダーでrefererの値を試しましたが、これはIEではうまくいかず、これは最適な解決策ではないと思います。 プラグインを使用して自分のjspファイルを自分のWebサイトから呼び出すのは、どうすれば安全に行うことができますか?jsonp referer url決定

ありがとうございます。

答えて

1

最も単純な答えは、各Webサイトに、要求に含まれる一意のキーまたは他の識別子を発行することです。この識別子を解析し、応答を適切に調整します。

ただし、クライアントブラウザからのリクエストでは、リクエストを処理する必要があるかどうかを慎重に評価する必要があります。 (信頼されていないクライアントが要求を出しているので、そのような識別子を収穫して再利用するのは簡単な作業です)...

リファラー(存在する場合)はダブルチェックとして使用できますが、これは信頼できず、信頼されていないクライアントコンピュータから来ているため、要求のこの部分も同様に偽装される可能性があります。

ウェブサイトの所有者がサーバー側で処理すると思われる場合は、jsonp呼び出し用のプロキシを実装することができます(これにより、トークンがブラウザの手に入ることはありません)...そのようなセーフガードが本当に価値があるかどうかを知る必要があります:)

+0

あなたの答えチャーリーありがとう。私はこれについてあなたと同じ考えと懸念を持っていました。そして、私は、最も「ユーザーが総合的なフレンドリーなソリューション」を望んでいました。あなたは、プラグインとしてこれを作らなければならないので、静的か否かに関わらず、簡単に貼り付けることができます。私は分析スクリプトを使ってドメインを特定しているGoogleをどのように徘徊していましたか?アカウントキーだけではできません。 – johniem

+0

Googleアナリティクスでは、ウェブプロパティID(オプションでjavascriptや他のクライアント側のオプションで指定されたドメイン名)を使用していることは間違いないと思います... 。しかし、余計なクリック情報を誰かのアナリティクスアカウントに記録することはできません。ブラウザがこのトークンIDを取得した場合、誰が気にしますか? (彼らはクリックを録音する以外には使えないので、あなたのシナリオとは異なるかもしれませんが(詳細は言えませんが)。 – Charlie

+0

私の場合、調査スクリプトを実行して、有効な統計を維持するために調査が実行されているWebサイトを追跡する必要があります。私のデータベースにない人はスクリプトを手に入れて彼のウェブサイトで調査を実行することはできません。 – johniem