思った以上にえげつない仕様が盛り込まれているので調べる
ITPに関して
ITPのそもそもの話は過去にざっくり書いたのでそちらを参考のこと
Intelligent Tracking Prevention とはなにかざっくりまとめる - コード日進月歩
ITP2.3で起きること
対象 | 起きること | この仕様になったver |
---|---|---|
3rd Party Cookie | 従来方法で即時利用不可 | ITP2.1 |
クライアント(≒JS)生成の1st Party Cookie | 特定条件に当てはまる場合に利用期間が24時間になる | ITP2.2 |
LocalStorage | 特定条件下で即削除される | ITP2.3 |
Referrer | パラメータがある場合にドメイン情報のみになる | ITP2.3 |
要素別に書いていく
3rd Party Cookie
期間を設けたり、パーティション化するなどしていたが、最終的にITP2.1にて規制が強化、ユーザにUI許可を求めるStorageAccess APIを使わないと取得できなくなった、こちらもルールがかなり煩雑かつSafariとFirefoxでしか実装されていない。
1st Party Cookie
Set-Cookie
でヘッダに仕込むクッキー(サーバサイドクッキーなどと呼称される)は今の所規制はないが、 document.cookie
ベースのJSで作るCookie(クライアントクッキーなどと呼称される)はITP2.2にて下記の2つの条件両方に当てはまると24時間でアクセスができなくなる
- ITP1.0からある機械学習モデルでcross-site tracking 機能で分類されたドメインと認識されている
- 1のドメインで異なるドメインBへの遷移URLにクエリストリングやフラグメント識別子が含まれている
LocalStorage
HTML5から登場した、ブラウザが持つデータ領域のlocalStorage、こちらがITP2.3から規制対象となっていて、以下のような条件を満たすと削除される(らしい)。
- ユーザーがcross-site tracking 機能で分類されたドメインから、クエリ文字列やフラグメント識別子などがついていると、削除対象サイトとして記憶される(URL例:
website.example?clickID=0123456789
) - ユーザーがwebsite.exampleのWebページを操作せずに7日間Safariを使用すると、website.exampleのCookie以外のWebサイトの LocalStorageデータが削除されます。
Referrer
ITP2.3からトラッキング用途としてリファラが使われているというところに嘆きが入り、eLTD+1以上の情報はリファラにつかなくなる。
例としては https://sub.social.example/some/path/?clickID=0123456789
から遷移してきた場合に https://social.example
としかReferrerでは取れない。