2012-12-01 2 views
7

リモートファンクションを実行するサーバーとして指定されたPHPスクリプトを利用するJavascript端末を使用するプロジェクトのアイデアがありました。私は、同じ起源の方針がそのようなプロジェクトの障害になることは理解していますが、私が毎日使っているGoogleアナリティクスを見ると、問題を大規模に回避する方法があるようです。Googleアナリティクスはどのように同じ発信元ポリシーを回避しますか?

+1

を示しています。 – Haocheng

+0

jsonpに言及してくれてありがとう、私はこの補完を知らなかった。私はいつもgoogleがJSとHTMLを分離しない理由を疑問に思っていました。これは 'script'タグがこれに不可欠であるようです。 – Lee

+3

私は覚えていることですが、Googleアナリティクスサーバーが知っておく必要があるすべての情報(画像の埋め込みにはドメイン間の制限はありません)が含まれているsrc属性を「」に挿入します(JS経由)。返される実際のイメージは、1x1の空白イメージです。 – techfoobar

答えて

11

クロスドメイン要求を許可するために近代的な方法は、すべての要求に次のヘッダで応答するサーバーのためのものである:

Access-Control-Allow-Origin: * 

これは、任意のホストからの要求を可能にするか、あるいは特定のホストを代わりに使用することができます*。これは、Cross Origin Resource Sharing(CORS)と呼ばれます。残念ながら、古いブラウザではサポートされていないため、その場合はブラウザを回避するためにハッキングが必要です(コメント担当者がおそらくイメージを要求したように)。

+0

これははるかに "クリーナー"のように思えます。良い入力 – Lee

11

Googleアナリティクス、Googleアドワーズ広告、その他すべてのアナリティクス/ウェブマーケティングプラットフォームでは<img>タグが使用されています。

JSプログラムを読み込むと、ページに記録されたトラッキングを処理し、画像を作成し、画像のソースをサーバーのドメインと同じに設定し、トラッキング情報をすべて追加しますクエリ文字列に追加します。

重要な点は、そこに到達する方法は関係ありません。
サーバーは、呼び出されているURLの内部にあるデータのみを心配しており、クライアントは特定のURLを返します。返り値は取得されません。
したがって、誰かが<img>年を前に選んだので、企業はそれ以来それを使用し続けています。

+0

おかげさまでありがとうございます。これは、少なくとも言って非常にハッキーのようだ! – Lee

+1

@Leeです。しかし、AJAXが家庭の名前になり、誰もがまだCDATAのコメントタグでスクリプトをラッピングしていたので、Web解析トラッキングと検索エンジンマーケティングは、ある形で、あるいは別の形で行われてきました。その時、 'imsc'タグはおそらく' noscript'の利益のために選ばれました。実際、AdWordsのトラッキングやSiteCatalyst(あなたが$ 60,000 + /年を支払う可能性のあるプログラム)を見ると、彼らはまだJSセクションの下に 'noscript'セクションを持っています。したがって、JSは外部プログラムを読み込み、 'noscript'バージョンに似た画像を作成します。 – Norguard

+1

多くのブラウザではCORSをサポートしていないため、ハッキングにもかかわらず、正しい方法でデータに大きな穴を残すことになります。別の5年後には、すべての男性、女性、トースターにクロスオリジンJSが注入されるため、これは実行可能な解決策になるかもしれません。それまでは、追跡される人の数を最大化するための最適以下の解決策が残されています。これは、コンテンツの100%を無効にすることを目的とした「」または「

  • 11. Ajaxで同じ発信元ポリシーを実行する理由は何ですか?
  • 12. GWT SSL + Jetty +同じ発信元ポリシー=混乱
  • 13. CordovaまたはPhonegapのHttpリクエストと同じ発信元ポリシーの問題
  • 14. 同じドメインで同一生成元ポリシーに、しかし、HTTPS
  • 15. Google Analyticsはどのようにしてスプーフィングを回避しますか?
  • 16. Googleアナリティクスはどのようにウェブサイトを認証しますか?
  • 17. scribefireや最も深刻な送信者は、どのように元のポリシーの制限を回避しますか?
  • 18. アクセスiframe内のボタン、これをしようと回避策同一生成元ポリシー
  • 19. エラー:制限付きURIへのアクセスが拒否されました - 同じ発信元ポリシーですか?
  • 20. getXDMまたはJSONPで、同じ起点ポリシーを回避するために使用します。
  • 21. Googleアナリティクスは1回の訪問で同じ目標を複数回トラッキングしますか?
  • 22. はどのように私はGoogleアナリティクス
  • 23. 同じクエリの実行を複数回回避するにはどうすればよいですか?
  • 24. Perlはシボンループをどのように回避しますか?
  • 25. Googleアナリティクスの非同期追跡における競合状態の回避
  • 26. Googleアナリティクス - データをGoogleアナリティクスに送信
  • 27. Google Maps APIを使用しているときに「同じ発信元ポリシー」の警告が表示されないのはなぜですか?
  • 28. 発信元ポリシーに関して、postMessage()とdispatchEvent()の違いは何ですか?
  • 29. どのようにしてDatabaseObjectNotClosedExceptionを回避できますか
  • 30. Googleアナリティクス:私はボタンのクリックと同じようにトラッキングしますが、ページリンクのクリックをトラッキングするにはどうすればよいですか?