上の記事でITPのリリースで更新されたことについて調査していたときにDelayed Bounce Tracking(遅延バウンストラッキング)
という言葉を知ったのだが、遅延の前にそもそもバウンストラッキングとは何かを調べた
ITP2.0のリリース時の記事によると
このような手法をバウンストラッキング(リダイレクトベースのトラッキング)というらしい
ITP 2.0の時点でこのトラッキングは検出されるようになっており、他のトラッカーと同じように扱われるようになったが、その検出を回避するためにリダイレクトを極端に遅延させる手法が出現していて、それが遅延バウンストラッキングというものらしい
ということで、3/24にリリースされたITPでは、この遅延バウンストラッキングさえも検出するロジックをいれたということだった
ちなみに、現在W3CのPrivacy Community Groupの中で(これはまた別の手法?になるのか)バウンストラッキングを防止する話し合いが行われているみたい
このissueの中で取り上げられているバウンストラッキングの仕組みはざっくり次のとおり
- コンテンツ発行者のページに、tracker.exampleのサードパーティスクリプトが埋め込まれている
- サードパーティスクリプトは、tracker.exampleのサードパーティCookieを読み取ろうとする
- それができない場合、window.locationを使用するか、ページ上のすべてのリンクをハイジャックして、トップレベルをtracker.exampleにリダイレクトする
- tracker.exampleがファーストパーティになるのでCookieを設定する
- tracker.exampleはURLパラメータにCookie値を持たせ状態で元のページのURLまたは目的のリンク先にリダイレクトする
- tracker.example cookieをサードパーティのコンテキストで読んで戻すことができるようになった(そして、ファーストパーティストレージにそれを隠しておく)
リクエストの時点では、ブラウザがリダイレクトされるかどうかを認識していないため、このバウンス追跡を防御するのが困難とのこと
今後、このようなトラッキングもどんどん防止されるのではないかという話