0

私は自分のウェブサイトのメンバーのためにコンテンツロッカーウィジェットを作成しました。コンテンツロッカーは、訪問者をリダイレクトする前に、訪問者に調査を完了するように強制します。

基本的に、JavascriptでドメインにAjaxリクエストを送信し、調査が終了したらユーザーをリダイレクトする必要があります。PHPスクリプトが、完全な場合は「1」、不完全な場合は「0」をエコーするとします。

これは通常は些細なことですが、ユーザーは自分のWebサイトではなく、自分のWebサイトにJavaScriptコードを配置します。そのため、クロススクリプトフラグが発生するのではないかと心配しています。

では、コンテンツロッカーはどのようにこれを行うのでしょうか?Adscend Mediaのような企業が持っているので、これが可能であることを私は知っています。

また、私のWebサイトでウィジェットを設計した後、次のようなコードをWebサイトに配置しました。

<script type="text/javascript" src="http://mywebsite.com/js/w.php?i=6PS0D9"></script>

これはheadタグに入ります。スクリプト自体が私のドメインにあるので、このスクリプトを含めると、どういうわけか私のドメインへのクロススクリプトが利用可能になりますか?

助けてくれてありがとう。

4

1 に答える 1

1

あなたが懸念している基本的な問題は、「同一生成元ポリシー」です。これは、Web サイトが他のドメインに AJAX 要求を行うことを防ぐために、すべての主要なブラウザーが従うポリシーです。

ただし、同一生成元ポリシーは、タグによって取り込まれるスクリプトを制限しない<script>ため、コンテンツ ロッカーは必要なスクリプト ファイルを問題なく提供できます。ちなみに、これは同一生成元ポリシーの「JSONP」回避策の仕組みでもあります。

顧客があなたの Web サイトに対してクロスドメイン リクエストを行えるようにしたい場合は、サイト上の特別な「crossdomain.xml」ファイルに顧客のドメイン名を追加すると、(現在の) ブラウザーでそれらのリクエストが機能するようになります(ファイルの名前/パスですが、興味がある場合は簡単に検索できるはずです。詳細については、https ://support.ookla.com/entries/21097566-what-is-crossdomain-xml- を参照してください。そして、なぜそれが必要なのか)。

または、顧客が自分のサーバーにプロキシをセットアップすることもできます (おそらく、顧客がやりたいことではないでしょう)。または、JSONP を使用することもできます。これは基本的に次の場所にあります。

  1. ユーザーは、script タグをページに追加する JS を実行します。そのスクリプト タグの URL は「yoursite.com/shouldILetThisGuyIn/」のようなものです。
  2. サーバーは、次のようなJSファイルを送信しますvar letThisGuyIn = true; function foo() { return letThisGuyIn }
  3. ユーザーは 'foo()' を実行し、結果を取得して、その人を入れるかどうかを決定します。
于 2012-12-03T21:24:54.157 に答える