リモートファンクションを実行するサーバーとして指定されたPHPスクリプトを利用するJavascript端末を使用するプロジェクトのアイデアがありました。私は、同じ起源の方針がそのようなプロジェクトの障害になることは理解していますが、私が毎日使っているGoogleアナリティクスを見ると、問題を大規模に回避する方法があるようです。Googleアナリティクスはどのように同じ発信元ポリシーを回避しますか?
答えて
クロスドメイン要求を許可するために近代的な方法は、すべての要求に次のヘッダで応答するサーバーのためのものである:
Access-Control-Allow-Origin: *
これは、任意のホストからの要求を可能にするか、あるいは特定のホストを代わりに使用することができます*
。これは、Cross Origin Resource Sharing(CORS)と呼ばれます。残念ながら、古いブラウザではサポートされていないため、その場合はブラウザを回避するためにハッキングが必要です(コメント担当者がおそらくイメージを要求したように)。
これははるかに "クリーナー"のように思えます。良い入力 – Lee
Googleアナリティクス、Googleアドワーズ広告、その他すべてのアナリティクス/ウェブマーケティングプラットフォームでは<img>
タグが使用されています。
JSプログラムを読み込むと、ページに記録されたトラッキングを処理し、画像を作成し、画像のソースをサーバーのドメインと同じに設定し、トラッキング情報をすべて追加しますクエリ文字列に追加します。
重要な点は、そこに到達する方法は関係ありません。
サーバーは、呼び出されているURLの内部にあるデータのみを心配しており、クライアントは特定のURLを返します。返り値は取得されません。
したがって、誰かが<img>
年を前に選んだので、企業はそれ以来それを使用し続けています。
おかげさまでありがとうございます。これは、少なくとも言って非常にハッキーのようだ! – Lee
@Leeです。しかし、AJAXが家庭の名前になり、誰もがまだCDATAのコメントタグでスクリプトをラッピングしていたので、Web解析トラッキングと検索エンジンマーケティングは、ある形で、あるいは別の形で行われてきました。その時、 'imsc'タグはおそらく' noscript'の利益のために選ばれました。実際、AdWordsのトラッキングやSiteCatalyst(あなたが$ 60,000 + /年を支払う可能性のあるプログラム)を見ると、彼らはまだJSセクションの下に 'noscript'セクションを持っています。したがって、JSは外部プログラムを読み込み、 'noscript'バージョンに似た画像を作成します。 – Norguard
多くのブラウザではCORSをサポートしていないため、ハッキングにもかかわらず、正しい方法でデータに大きな穴を残すことになります。別の5年後には、すべての男性、女性、トースターにクロスオリジンJSが注入されるため、これは実行可能な解決策になるかもしれません。それまでは、追跡される人の数を最大化するための最適以下の解決策が残されています。これは、コンテンツの100%を無効にすることを目的とした「」または「
を示しています。 – Haocheng
jsonpに言及してくれてありがとう、私はこの補完を知らなかった。私はいつもgoogleがJSとHTMLを分離しない理由を疑問に思っていました。これは 'script'タグがこれに不可欠であるようです。 – Lee
私は覚えていることですが、Googleアナリティクスサーバーが知っておく必要があるすべての情報(画像の埋め込みにはドメイン間の制限はありません)が含まれているsrc属性を「
」に挿入します(JS経由)。返される実際のイメージは、1x1の空白イメージです。 –
techfoobar