サードパーティ Cookie の段階的廃止への準備

コードを監査してサードパーティ Cookie を探す方法と、サードパーティ Cookie の終了に向けて準備を確実に整えておくための作業について説明します。

公開日

翻訳先言語: English, Español

サードパーティ Cookie は、クロスサイトトラッキングを可能にする重要なメカニズムであり、いくつかの主要なブラウザは、すでに何らかの方法でサードパーティ Cookie に制限を設けているか、または制限を設定する予定です。サードパーティ Cookie を使用すると、埋め込みコンテンツの状態を管理したり、複数のサイトにわたるユーザーセッションを有効にしたりするなど、多くの有効なユースケースも可能になります。

プライバシーサンドボックスプロジェクトの一環として、Chrome はサードパーティ Cookie のサポートを段階的に廃止し、ユーザーのプライバシーを保護しながら正当なユースケースのサポートを継続できるよう、専用の API とともに Cookie の新しい機能を提案しています。廃止は 2024 年半ばから段階的に行われます。

クロスサイトトラッキングのない将来に備えるために、Cookie の使用箇所を監査し、サイトに影響がある場合に必要となる作業を計画してください。

概要

  1. コード内のファーストパーティ Cookie とサードパーティ Cookie を識別します。 SameSite=None を含む Cookie は更新が必要です。
  2. 完全に包含された埋め込みコンテキストでサードパーティ Cookie を使用している場合は、パーティション化された Cookieを調べます。
  3. 1 つのまとまったグループを形成する複数のサイトにわたってサードパーティ Cookie が必要な場合は、 First-Party Sets を調べます。
  4. これらのオプションのいずれも該当しない場合は、クロスサイトトラッキングに依存しない個別のユースケースについて、他のプライバシー サンドボックス API を調べます

ファーストパーティ Cookie とサードパーティ Cookie を識別する

Cookie は、ユーザーのコンテキストに応じてファーストパーティまたはサードパーティになりえます。ユーザーがその時点でどのサイトにアクセスしているかによって異なります。ウェブ上のファーストパーティコンテキストとサードパーティコンテキストの区別は必ずしも明らかではなく、さまざまなリソースに及ぼす影響もさまざまです。

Cookie はそれを設定したサイトに関連付けられており、HTTP リクエストで送信したり、JavaScript でアクセスしたりできます。ブラウザのロケーションバーに示されるサイトが Cookie リクエストに関連付けられたサイトと一致する場合、それはファーストパーティ Cookie です。これが異なる場合は、サードパーティ Cookie です。

サイト上のセッションを管理するために Cookie を設定してもクロスサイト iframe では使用されない場合など、Cookie がサードパーティのサイトで使用されない場合、その Cookie は常にファーストパーティのコンテキストで使用されます。ファーストパーティ Cookie を示す図。 ファーストパーティまたは同一サイトの Cookie を識別するには、次のものを探してください。

  • SameSite 属性なしで設定された Cookie。
    • Set-Cookie: cookie-name=value;
  • SameSiteLax または Strict に設定された Cookie。
    • Set-Cookie: cookie-name=value; SameSite=Lax;
    • Set-Cookie: cookie-name=value; SameSite=Strict;
重要

この場合、Cookie はサードパーティ Cookie の段階的廃止の影響を受けることはありません。

ファーストパーティ Cookie で SameSite 属性に適切な値を明示的に設定していない場合は、ブラウザ間で一貫した動作を保証するためにそれを設定しておく必要があります。

ベストプラクティスのレシピには、他のファーストパーティ Cookie 属性に使用できる合理的なデフォルトが他にも多数あります。

Set-Cookie:
__Host-cookiename=value;
Secure;
Path=/;
HttpOnly;
Max-Age=7776000;
SameSite=Lax

詳細については、「 ファーストパーティ Cookie のレシピ」を参照してください。

iframe やサブリソースリクエストなど、クロスサイトのコンテキストで送信される Cookie は通常、サードパーティ Cookie と呼ばれます。サードパーティ Cookie を示す図。 サードパーティ Cookie のユースケースには次のようなものがあります。

  • 動画、地図、コードサンプル、ソーシャルメディア投稿など、他のサイトから共有される埋め込みコンテンツ。
  • ペイメント、カレンダー、予約、予約機能などの外部サービスのウィジェット。
  • ソーシャルボタンや詐欺対策サービスなどのウィジェット。
  • リクエストとともに送信される Cookie に依存する <img><script> タグなどのページ上のリモートリソース(通常、ピクセルのトラッキングやコンテンツのパーソナライズに使用されます)。

2019 年には、ブラウザの Cookie の動作が変更され、デフォルトでファーストパーティのアクセスに制限されました。現在、クロスサイトコンテキストで使用されるすべての Cookie は、SameSite=None 属性で設定されている必要があります。

Set-Cookie: cookie-name=value; SameSite=None; Secure
重要

Cookie を必ず確認し、SameSite=None が設定されている Cookie のリストを作成してください。これらは、適切に機能し続けるための対応が必要な Cookie です。

これらを識別するには、1 つの方法として、コードベースを調べて SameSite=None を含む Cookie を検索することができます。

または、マシン上でサードパーティ Cookie がブロックされている状態でサイトを閲覧し、DevTools を使用して潜在的な破損を調査することができます。

サードパーティ Cookie の調査に使用できる DevTools 機能の詳細については、chromium.org に記載の手順をご覧ください。

CHIPS(Cookies Have Independent Partitioned State) は、新しい Cookie 属性の Partitioned を使用してサードパーティの Cookie をトップレベルサイトごとにパーティション化することにオプトインする仕組みを導入するプライバシーサンドボックスの提案です。

別のサイトのコンポーネントとして使用されているサービスがある場合、そのサービスが設定する Cookie はクロスサイトコンテキストです。現在の Cookie の仕組みでは、この Cookie をサービス C がサイト A に設定すると、サービス C がサイト B に埋め込まれている場合でも読み取られます。

パーティション化されていない Cookie を含むサイトとストレージを示す図。

サービスとそれを使用するサイトが 1 対 1 の関係にある場合、それらの Cookie は設定されたサイトでのみ必要となり、複数のサイトで使用されることはありません。には、ウィジェットの設定の保存や API のセッション Cookie の共有などが含まれます。

この場合、Cookie をトップレベル サイトごとにパーティション化すると、複雑さとサイト間のデータ漏洩のリスクが軽減されるため、改善となります。サードパーティ Cookie は引き続きサイト間で使用できますが、ブラウザが異なるトップレベルサイトにある場合は、異なる Cookie が表示されます。

サイトと、Cookie でパーティション化されたストレージを示す図。
Set-Cookie: __Host-cookie=value; SameSite=None; Secure; Path=/; Partitioned;

詳細について

技術的な設計、ユースケース、テストに関する詳細については、CHIPS ドキュメントをご覧ください。

First-Party Sets

First-Party Sets(FPS)は、開発者がサイト間の関係を宣言するためのウェブプラットフォーム メカニズムです。これにより、ブラウザはこの情報を使用して、特定のユーザー向けの目的で制限付きのクロスサイト Cookie アクセスを有効にできます。Chrome は、これらの宣言された関係を使用して、サードパーティのコンテキストで、Cookie へのサイトアクセスをいつ許可または拒否するかを決定します。

相互の Cookie にアクセスしている 3 つのサイトを示す図。

Cookie が複数の関連サイト間で使用されている場合、クロスサイト Cookie をブロックするか、トップレベル サイトごとにパーティション化すると、シングルサインオンや共有ショッピングカートなどのユースケースがブロックされてしまいます。

これらのサイトを First-Party Sets の一部として宣言すると、Storage Access API(SAA)requestStorageAccessFor API を使用して、これらの Cookie へのアクセスをリクエストできるようになります。

同じ First-Party Sets 内のサイトのみが相互の Cookie にアクセスし、3 番目のサイトはアクセスが拒否されていることを示す図。

このセットは JSON 形式で宣言されます。以下の例では、プライマリドメインは travel.site で、 air-travel.site 関連サイトのリストに含まれています。

{
"primary": "https://travel.site",
"associatedSites": ["https://air-travel.site"]
}

トップレベルサイトは、Document.requestStorageAccessFor()(rSAFor)を使用して、特定のオリジンに代わってストレージ アクセスをリクエストできます。

document.requestStorageAccessFor('https://target.site')

詳細について

技術的な設計、ユースケース、セットの提出プロセスに関する詳細については、First-Party Sets 開発者ドキュメントをご覧ください。

Cookie の必要性を置き換えるプライバシーサンドボックス API

CHIPS と First-Party Sets は、プライバシーを保護しながらクロスサイト Cookie に依存し続ける可能性のあるユースケースに対応しています。

どちらもニーズを満たさない場合は、Cookie の必要性に代わって特定のユースケースに対応できるように、プライバシーサンドボックスの新しい API の提案が多数用意されています。新しい API の中には、ID や不正行為の検出などに焦点を当てたものもありますが、広告に対応するものもあります。

Federated Credential Management(FedCM)では、ID 連携サービスに対するプライバシー保護のアプローチが可能になるため、ユーザーは個人情報をサードパーティのサービスやウェブサイトと共有することなくサイトにログインできます。

プライベートステートトークンは、ウェブサイトが、ある閲覧コンテキストから別の閲覧コンテキスト(サイト間など)に限定された量の情報を伝達できるようにして、パッシブトラッキングを行わずに不正行為に対抗できるようにします。

API スイートは、インタレストベース広告、カスタムオーディエンス向けのオンデバイスオークション、クロスサイトコンテンツの選択、広告コンバージョンの測定とアトリビューションなど、広告の関連性測定のユースケースに対応するために利用できます。

この記事で取り上げられていないユースケースに新しい API がどのように対応できるかについては、プライバシーサンドボックスのドキュメントをご覧ください。

公開日 記事を改善する

This site uses cookies to deliver and enhance the quality of its services and to analyze traffic. If you agree, cookies are also used to serve advertising and to personalize the content and advertisements that you see. Learn more about our use of cookies.