http リクエストが特定の場所から発信されていることを確認するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/1123690

  •  13-09-2019
  •  | 
  •  

質問

現時点ではHTTPリファラーを使用しています。この方法を使用したことのある人なら誰でも知っているように、Referer ヘッダーはオプションであり、変更される可能性があるため、100% 正確ではありません。

見つめている コードのみから Web サービスへのアクセスを確保する方法 最小限の方法でこれに対処する方法がまだわかりません。

状況:

他人のサイトに広告を掲載する。iFrame を使用すると、コンテンツ/機能を自由に変更できます。アクションが完了するたびに、x.xx ドルを支払います。したがって、アクションが完了できると述べた場所から完了していることを確認する必要があります。

私が阻止しようとしていること:

他のいくつかのウェブマスターが進んでいます - 「ねえ、それは素晴らしいツールです、私のサイトにそれを置きましょう」ので、私が一番上で言ったように、私がするのは、私が参照者が一致しない場合、私はただし、同じツールがそのページに事前に形成されているアクションは、私にお金がかかりません。

上記を防ぐために、次のことを許可してください。

「アクションの完了」のために私が現金を支払っているウェブマスター/サイト所有者がコードを他のサイトに配置しても、私は気にしません - 明らかにこれは良いことです。より多くの報道範囲が広がり、サイト所有者はより多くの現金を獲得し、私はより多くのアクションを完了し、より多くの現金を生み出します。

質問

私の Web ページに来るすべてのリクエストが、合意に達した相手からのものであり、ランダムなものではないことを確認するには、相手に何をしてもらうことができますか。

ありがとう :)

情報アプリ

他社の Web サイトには iFrame があります。iFrame は、私のドメインの 1 つにある私の html/js/php ページを表示します。このページは、ajax リクエストを使用して、Ruby/Sinatra アプリである実際の Web サービスと対話します。相手の Web サイトの外観と雰囲気に合わせたさまざまなページがたくさんあります。


そこで、相手のサーバーと私のサーバーの間で何らかの会話をするのが良いのではないかと考えています。この場合、このおしゃべりの結果は、iFrame リクエスト中に何らかの形で存在します。

ただし、相手が iFrame で提供されているドメインに Cookie を設定できるかどうかはわかりません。実際にはできないと確信しています。

この制限を回避するために、Cookie を設定できるスクリプトをページ上の iFrame の一部として含めることができます。

上記のアイデアを要約すると、次のようになります。

  • OtherParty サーバーが私のサーバーにリクエストを送信し、応答を受け取ります。
  • その応答をパラメーターとして含むページをレンダリングします。 <script src="...?param"></script>
  • 私のスクリプトはクッキーを設定します
  • スクリプトは iFrame の前にあるため、スクリプトが最初にロードされます
  • iFrame は、Cookie セットが送信される前にそのドメインに Cookie が設定されているため、ページとともにロードされます。
  • ビンゴ、リクエストは正当であることが確認されました

これは大丈夫ですか?

ところで、アクションを完了させたい私のツールは、JSが有効になっている場合にのみ機能するので...

役に立ちましたか?

解決

あなたが本当にあなたのiframeをロードできるユーザーを確保したい場合は、これを行うための一つの方法は、2本足のOAuth (つまり、あなたの信頼できるパートナー「記号」のiframe GETリクエストを持っています)。次に、あなたのサーバーは、暗号有効な署名と既知の署名者に基づいてアクセス権を付与することができます。あなたはそれらをコピーして、自分のサイトに埋め込むから誰かを防ぐための署名要求のために、比較的短い有効寿命を施行することをお勧めします。

これはまた、あなたの直前のiframe挿入のあなたの余分なサーバー要求を作成するあなたのパートナーを持たずに初期の、オフラインの鍵交換を行うことを有することの利点を与えます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top