5

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

how-to-ensure-access-to-my-web-service-from-my-code-onlyを見ると、最小限の方法でこれを実行する方法がまだわかりません。

状況:

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

私が防ごうとしていること:

他のウェブマスターがやって来ます-「これは素晴らしいツールです。自分のサイトに配置しましょう」上部で述べたように、リファラーが一致しない場合は、次のようなページにリダイレクトします。同じツールですが、そのページで実行されるアクションが何であれ、お金はかかりません。

上記を防止しようとしている間、次のことを許可します。

私が「アクション完了」のために現金を払っているウェブマスター/サイト所有者が他のサイトにコードを置いてもかまいません-明らかにこれは良いことです。より多くのカバレッジ、サイト所有者はより多くの現金を手に入れ、私はより多くのアクションを完了し、それは私により多くの現金を生み出します。

質問

相手に何をさせることができるので、自分のWebページに届くすべてのリクエストは、同意している相手からのものであり、ランダムではないことがわかります。

ありがとう :)

info re app

他のパーティのWebサイトにはiFrameがあります。iFrameは、私のドメインの1つにある私のhtml / js/phpページを表示します。このページでは、ajaxリクエストを使用して、ruby/sinatraアプリである実際のWebサービスとやり取りします。相手のウェブサイトのルックアンドフィールに合うさまざまなページがたくさんあります。


ですから、他のパーティのサーバーと私のサーバーの間で何らかのおしゃべりをするのは良い考えだと思います。次に、このチャタリングの結果は、iFrameリクエスト中に何らかの形で存在します。

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

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

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

  • OtherPartyサーバーがサーバーにリクエストを送信し、レスポンスを取得します。
  • その応答を含むページを<scriptsrc= "...?param"></script>へのパラメータとしてレンダリングします
  • 私のスクリプトはCookieを設定します
  • スクリプトはiFrameの前にあるため、スクリプトが最初に読み込まれます
  • 送信前に設定されたドメインCookieにCookieが設定されているため、iFrameはページとともに読み込まれます
  • ビンゴ、検証済みの合法性を要求する

これは大丈夫ですか?

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

4

1 に答える 1

4

誰があなたの iframe をロードできるかを本当に保護したい場合、これを行う 1 つの方法は 2-legged OAuthを使用することです(つまり、信頼できるパートナーに iframe GET 要求に「署名」してもらいます)。次に、サーバーは、暗号的に有効な署名と既知の署名者に基づいてアクセスを許可できます。署名されたリクエストの有効期間を比較的短くして、他の誰かがそれらをコピーして自分のサイトに埋め込むのを防ぐ必要があります。

これにより、パートナーが iframe の挿入前に追加のサーバー要求を行うことなく、最初のオフライン キー交換を行うだけでよいという利点も得られます。

于 2009-11-01T04:01:40.377 に答える