|

2023-05-11

データ関連

Safari16.4におけるサーバーサイドCookieの制限強化

CookieSafariCookie規制WEBアクセスログ

2023年4月のSafariアップデートによるCookie制限

トラッキングのためのCookie利用

暑くなってきた昨今ですが、そんな暑さを冷やしてくれるアップデートが先月Safariに入ったという話があります。端的に言うと先月公開されたSafari 16.4でトラッキング規制が強化されたという話です。

 

トラッキングというとなんとなく悪いイメージもありますが、広告出稿のような提供者側に恩恵がある活用方法だけでなく、Webサイトのユーザがどのように行動しているかの分析によるUX改善等の活用方法もあるものです。

とはいえ昨今のプライバシー保護の観点から懸念は増大し、特にAppleはITP(Intelligent Tracking Prevention)やATTなど様々なプライバシー保護の仕組みを積極的に導入しています。

 

その一環となるかと思いますが、今回のSafariのアップデートで 「サーバーサイドCookie」の有効期限が特定の条件下で7日に制限される ようになりました。

また、 この「特定の条件」は、多くの外部サービスで採用されている条件となる のではないかと思います。

 

サーバーサイドCookieを活用するようになるまで

Safariでは先述のITPによってトラッキングのためのCookieに有効期限が設定されるようになっていました。

 

ITPによる制限強化の流れとともにどのような変化が起きてきたのかをざっくり言うと、

  • まず、外部サービスから直接Cookieを発行する「3rd Party Cookie」を活用したトラッキングに制限がかかる

    • トラッキングしたい人たちは、対策としてサイトと同一のドメインにおいて発行する「1st Party Cookie」に切り替える
  • 次に、同一ドメインから発行された「1st Party Cookie」であっても、JavaScriptにて document.cookie を利用して生成された「クライアントサイドCookie」については制限を強化する(Cookieの有効期限を最大7日間、トラッキング目的と判定された場合は24時間、Local Storageも有効期限7日間)

    • トラッキングしたい人たちは、対策として、同一ドメインを割り当てたサーバーからのレスポンスで受け取る「サーバーサイドCookie」に切り替える

という流れで、多くのWebサイトが対策のために「サーバーサイドCookie」を活用しているかと思います。

 

外部サービスでサーバーサイドCookieを発行する方法

1st Party Cookie扱いで外部サービスからサーバーサイドCookieを発行するためには、特定のサブドメインを外部サービスに割り当てることになります。

 

ということは、DNSレコードを設定することになるのですが、その際の方式も大きく分けて3つあります。

  • CNAME方式

    • 一番手軽で、CNAMEでドメインを外部サービスにそのまま向ける方法です。

    • ドメイン管理の観点からのリスクも大きくはないので、これは早々に有効期限が7日に制限されてしまいました。

  • NS方式

    • 特定のサブドメインのネームサーバーを外部サービス側で用意したものに向ける方法です。

    • 実質的にはサブドメインの管理を委譲するような形になるので少し気持ち悪さが残りますが、多くのサービスがこの方式を採用している印象があります。

  • A/AAAA方式

    • これは直接サブドメインから外部サービスのサーバー等のIPアドレスを指してしまう方式です。

    • A/AAAAレコードで指してしまえば、サーバー自体の持ち主が外部ベンダなのかサイトの持ち主なのかはわからないのでそれを活用するということです。

    • A/AAAAレコードで指すということは1つのIPアドレスを指すということで、どちらかというと外部サービス側の準備にハードルがあるように思います。

 

Safari 16.4での制限がかかる条件

NSレコードないしはA/AAAAレコードを活用さえしていれば基本的には安泰だろう…と思っていた矢先、恐怖のプルリクエストが上がりました。

 

“For now, the minimum matching subnet mask length to consider as "third party" or not is arbitrarily chosen to be half the IP address length (i.e. 16 for IPv4, and 64 for IPv6).” ということで、

半分の長さのサブネットマスクでの一致、 つまりIPアドレス前半にあたる部分が一致するかどうかを見て、もしも一致していない場合は3rd Partyとして扱い、有効期限を7日としてブロックする 実装が入れられています。

 

昨年末時点でTechnology Preview版でこの実装が入っていることは確認していたのですが、先月から公開されたSafari 16.4で晴れて(?)この実装がリリースされたことを確認しました…

 

Image_2023-05-11_11-23-16

 

実際、上記赤枠に囲まれているものがNS方式でのサーバーサイドCookieに該当するものですが、 2023/5/8 17時に動作を確認すると、有効期限が 2023/5/15 17時になっていました…

 

ちなみに、この挙動になるのは新規に発行されたCookieのみであることは確認済みです。(つまり、アップデート前に取得していたCookieはそのままの有効期限が維持されていました)

 

まとめ

今回は先月のSafariのアップデートによるCookie規制強化について紹介しました。

このレベルでの制限を実際に正式版に実装するか?は個人的に微妙なラインだと思っていたのですが、思っていた以上に早く実装されてしまいました。

 

対策を打つとすればWEBサイトをホストしているIPアドレスとほぼ同じ環境にトラッキング用の環境があるように見せるしかないかと思うので、リバースプロキシのような手法を採用するのか、今後の各ベンダの対応指針から目を離せません。

 

新規ユーザーとして判定される数などに影響を与えかねない 変更ですので、Webサイトの分析を行っている方は認識しておく必要がありそうですね。

 


この記事の著者

プロフィール画像

伴 拓也

朝日放送グループホールディングス株式会社 DX・メディアデザイン局 デジタル・メディアチーム

アプリケーションからインフラ、ネットワーク、データエンジニアリングまで幅広い守備範囲が売り。最近はデータ基盤の構築まわりに力を入れて取り組む。 主な実績として、M-1グランプリ敗者復活戦投票システムのマルチクラウド化等。