🍪

CookieやITPについての整理

2023/02/16に公開

はじめに

現在、Cookieはプライバシー保護の観点からどんどんと規制が厳しくなっていって使いづらくなっていっています。
しかし、ログイン機能の実装やアクセス解析などでCookieを使用しなければいけない場面はまだまだ存在していると思います。
この記事では、Cookieを使用する際にどうするのが良いか検討したのでその内容を共有します。

前提知識

Cookieには発行元によっていくつかの種類に分類されます。

  • 1st party cookie = 自社サーバーから発行されるCookie
  • 3rd party cookie = 第三者サーバーから発行されるCookie
  • クライアントサイドCookie = ブラウザから発行されるCookie
  • サーバーサイドCookie = サーバーから発行されるCookie

なのでCookieの種類は以下の4つになります。

1st party 3rd party
クライアントサイド 1st partyのクライアントサイドCookie 3rd partyのクライアントサイドCookie
サーバーサイド 1st partyのサーバーサイドCookie 3rd partyのサーバーサイドCookie

Cookie規制の歴史

まずはCookieがどのように規制されていったかを簡単に振り返ろうと思います。
発端としてはApple社がユーザのプライバシー保護のために、ITP(Intelligent Tracking Prevention)を「Safari」に搭載したところから始まりました。
Cookieを使ってトラッキングを行えなくするために、徐々に制限を強めていきました。
また、ITPはApple社での話ですが、「Chrome」や「Firefox」もApple社の後を追い、Cookieの規制を強めていっています。

https://service.aainc.co.jp/product/letro/article/what-is-cookie

Googleに関してはCookieに代わる機能として「Topics」を開発していたりするので今後の動向はまだわかりません。

ITPが規制を強めていった流れは以下にまとめました。

ITP1.0(2017年6月)

  • 3rd party cookieの制限
    クロスサイト トラッキングを防止する措置として、ユーザがサードパーティーCookieを発行したあと24時間後にそのサードパーティーCookieを分割して保持されます。
    また、分割して保持されたCookieは30日後には削除されます。

https://webkit.org/blog/7675/intelligent-tracking-prevention/

ITP1.1(2018年3月)

  • 3rd party cookieの制限強化
    分割されたすべてのCookieがセッションCookieとして扱われ、ディスクに永続化されなくなりました。
    要するに、サードパーティーCookieは24時間経つと削除されるようになりました。

https://webkit.org/blog/8142/intelligent-tracking-prevention-1-1/

ITP2.0(2018年6月)

  • 3rd party cookieの制限強化
    サードパーティーCookieは即時削除されるようになりました。

  • 1st party cookieの制限
    ユーザーが現サイトから外部サイトへ遷移するまでの間にある、トラッキング目的でリダイレクトされているファーストパーティーCookieは無効化され、即時削除の対象となりました。

https://webkit.org/blog/8311/intelligent-tracking-prevention-2-0/

ITP2.1(2019年2月)

  • 1st party cookieの制限強化
    クライアント側のファーストパーティーCookieの有効期限が最大7日間に制限されました。

https://webkit.org/blog/8613/intelligent-tracking-prevention-2-1/

ITP2.2(2019年4月)

  • 1st party cookieの制限強化
    特定の条件を満たした場合のクライアント側のファーストパーティーCookieの有効期限が1日に短縮されました。

https://webkit.org/blog/8828/intelligent-tracking-prevention-2-2/

ITP2.3(2019年9月)

  • Local Storageの制限
    クエリパラメーターやフラグメント識別子付きのURLでアクセスがあった場合のLocalStorageなどのCookie以外のストレージデータの使用についても最大7日間に制限されました。

https://webkit.org/blog/9521/intelligent-tracking-prevention-2-3/

現状でCookieを使う場合の最適解の検討

前提知識で挙げたようにCookieの種類は以下の4種類です。

1st party 3rd party
クライアントサイド 1st partyのクライアントサイドCookie 3rd partyのクライアントサイドCookie
サーバーサイド 1st partyのサーバーサイドCookie 3rd partyのサーバーサイドCookie

3rd partyは即時削除されるようになったので、1st partyを使うしかありません。
クライアントサイドのCookieはいくつかの制限があるので、サーバーサイドのCookieを使用するのが無難そうです。

なので、「1st partyのサーバーサイドCookie」を使用するのが現状ではベターだと思われます。

結論

Cookieを使う際は「1st partyのサーバーサイドCookie」を使用するのが良さそうです。

結論としては以上なのですが、この先も「1st partyのサーバーサイドCookie」は規制されることがないのかを少し考えてみたいと思います。

そもそもなぜ「1st partyのクライアントサイドCookie」は規制されたかというと、GoogleやFacebookなどの主要広告媒体がITP対策として、JavaScriptで1st Party Cookieを生成して、擬似的に規制下の3rd Party Cookieを再現していたのを禁止するために規制されたようです。

https://infinity-agent.co.jp/lab/20190502-id_other-digital-marketing_24/

サーバサイドでは擬似的に1st Party Cookieを生成することができないので、規制の対象とならなかったのだと思います。
なので、今後も規制されることは考えづらいと思います。

LCL Engineers

Discussion