不気味なクッキーなし

クッキーは焼きたてが最高です。古くなったクッキーを食べずにハロウィーンを楽しむための最新レシピをご紹介します。

クッキーは焼きたてが最高です。古くなったクッキーを食べずにハロウィーン シーズンを楽しめる最新のレシピをご紹介します。

Google は、ウェブ プラットフォーム全体でサードパーティ Cookie を段階的に廃止する予定です。これは、クロスサイト トラッキングに対処するための大きなマイルストーンですが、長い道のりの一部にすぎません。これまでの進捗状況と今後の予定をご紹介します。

表面的には、Cookie はブラウザとサーバー間で送信されるシンプルな Key-Value ストアを提供します。これにより、設定(theme=bats)の保存や、ログイン中のユーザーのセッション ID の保存など、サイト上で便利な機能を提供できます。

theme=bats や fav_pumpkins=us-nyc などの単純な値を含むサードパーティ Cookie

その Cookie が、Cookie を設定したサイト上で使用されている場合は、ファースト パーティ Cookie と呼ばれます。設定したサイトとは異なるサイトの一部として使用されている場合、これをサードパーティ Cookie と呼びます。たとえば、theme=bats Cookie は、その Cookie を設定したサイトにアクセスしている場合はファーストパーティ Cookie ですが、別のサイトの一部として iframe やその他のクロスサイト リソースに含まれている場合はサードパーティ Cookie です。

サードパーティ Cookie の問題は、クロスサイト トラッキングを可能にできることです。共有サービスは、テーマのようなものを設定するのではなく、ID 全体をそこに保存する場合があります。共有サービス Cookie を含む異なるサイトを移動すると、同じ ID が送信されます。つまり、1 つのサービスが、それらのサイト全体でユーザーのアクティビティを監視してリンクできることになります。

サードパーティ Cookie に含まれる一意の ID により、サードパーティ サイトがウェブ上でユーザーを追跡できる

デフォルトでファーストパーティ Cookie を使用する

すでにこの取り組みは進んでおり、以前は、単純な Cookie を設定すると、theme=pumpkins が同一サイトまたはクロスサイトのすべてのコンテキストで送信されていました。ほとんどのサイトでは、Cookie を同じサイトのコンテキストでのみ送信することを希望しています。これは、Cookie の SameSite 属性で制御できます。次に例を示します。

Set-Cookie: theme=bats; SameSite=Lax

これにより、リソースがトップレベル サイトと一致する場合にのみ Cookie を送信するようにブラウザに指示します。ただし、その場合、サイトはファーストパーティ Cookie を必要とするタイミングを指定する必要がありました。これはセキュリティの観点から見ると、デフォルトで権限を取得するのではなく、権限を必要とするときにリクエストするべきであるため、少し逆行しています。

そのため、SameSite=Lax がデフォルトになりました。theme=bats のみを設定した場合、Cookie は同じサイトのコンテキストでのみ送信されます。

デフォルトの SameSite=Lax 値は、サードパーティ コンテキストで Cookie が送信されないようにします。

クロスサイト Cookie またはサードパーティ Cookie が必要な場合(埋め込みウィジェットにテーマを表示する必要がある場合など)は、以下を指定する必要があります。

Set-Cookie: theme=bats; SameSite=None; Secure
明示的な SameSite=None 値は、クロスサイト コンテキストで送信される Cookie をマークします。

これにより、クロスサイト コンテキストで Cookie を送信することをブラウザに指示しますが、セキュリティで保護された接続にのみ制限します。

ファーストパーティ Cookie のさらなる活用

デフォルトのレシピは改善されましたが、まだ改善の余地があります。以下に簡単な例を示します。

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

これにより、1 つのドメインに限定されたファーストパーティ Cookie が作成されます。この Cookie は、セキュアな接続で、JavaScript によるアクセスは許可されず、期限切れになる前に自動的に期限切れになります。もちろん、同一サイトのコンテキストでのみ使用できます。

CHIPS でクッキーの味わいがアップ!

ウェブの魅力の一つは、複数のサイトを組み合わせて作成できることです。たとえば、他のサイトが最高のカボチャ畑ツアーやお菓子配りルートを表示できる地図ウィジェットを作成するとします。私のサービスは Cookie を使用して、ユーザーがルート上の進行状況を保存できるようにしています。問題は、同じサードパーティ Cookie が、カボチャ畑のサイトといたずらいたずらサイトの両方で送信されることです。サイト間でユーザーをトラッキングしたくないのですが、ブラウザは 1 つの Cookie ジャーしか使用しません。使用を分離する方法はありません。

SameSite=None のクロスサイト Cookie は引き続き共有 Cookie ジャーに格納される

そこで、Cookies Having Independent Partitioned State(CHIPS)の提案が役に立ちます。1 つの共有 Cookie ジャーではなく、トップレベル サイトごとに個別のパーティション化された Cookie ジャーがあります。サイトは、Cookie に Partitioned 属性を使用して、この機能をオプトインします。

Set-Cookie: __Host-route=123;
  SameSite=None;
  Secure;
  Path=/;
  Partitioned;
Cookie の Partitioned 属性により、トップレベル サイトごとに個別の Cookie の格納場所が作成されます。

クッキージャーを共有するのではなく、全員が自分のクッキージャーを持つことができます。よりシンプルで安全、衛生的です。

Chrome 109 の 独立パーティショニングされた状態の Cookie(CHIPS)リリース通知を送信しました。つまり、12 月にベータ版でテストできるようになり、2023 年 1 月に安定版で利用可能になります。サイトのクッキー レシピを改善するための新年の抱負をお探しの場合は、クロスサイト クッキーに CHIPS を追加できるかどうかご確認ください。

ファーストパーティ セットを使用して Cookie をパーティーに招待する

デベロッパーからのフィードバックでは、管理するサイト間でサービスを共有し、それらのサイトで Cookie を使用したいが、真のサードパーティ コンテキストで送信されたくないという状況があることも多く指摘されています。たとえば、pretty-pumpkins.compretty-pumpkins.co.uk があるとします。これらのサイト間で機能する Cookie ベースのシングル サインオン システムがある場合があります。CHIPS は機能しません。両方のサイトにログインする必要があるためです。これらの関連サイト間で同じ Cookie が必要という要件があります。

Google では、これを実現するためにファーストパーティ セットの提案に取り組んでいます。 1 回のオリジン トライアルとコミュニティでの多くの議論を経て、以下の目標を掲げた最新バージョンが完成しました。

  • 組織が、相互に同じパーティであるべきサイトのグループを定義できるようにします。
  • Storage Access API を利用して、そのファーストパーティ セット内のクロスサイト Cookie へのアクセスをリクエストします。
First-Party Sets では、関連サイト間でのみ Cookie ジャーを共有できます

これらの Cookie はすべてまだオーブンで焼き上がっている状態ですが、テストする項目が増えたらファーストパーティ セットのデベロッパー ガイドをご確認ください。また、議論に貢献したい場合は、WICG/first-party-sets プロポーザルをご覧ください。

Cookie が古くならないようにしましょう。

Google は、2024 年半ばから Chrome でサードパーティ Cookie のサポートを段階的に廃止することを目標としています。準備にはまだ時間がありますが、今すぐ計画を立て始めてください。

  1. SameSite=None を含む Cookie がコードにないか監査します。更新が必要な Cookie は次のとおりです。
  2. サードパーティ Cookie を使用していない場合は、同一サイト Cookie で最適なファーストパーティ Cookie レシピが使用されていることを確認してください。
  3. これらの Cookie を完全に制御された埋め込みコンテキストで使用している場合は、CHIPS プロポーザルを調査してテストします。
  4. 複数のサイトにまたがって Cookie を 1 つのまとまりのあるグループにまとめる必要がある場合は、ファーストパーティ セットの提案をご確認ください。
  5. これらのオプションのいずれにも該当しない場合は、他のプライバシー サンドボックスの提案を検討する必要があります。Google では、クロスサイト トラッキングに依存しない個々のユースケース向けに、専用の API を開発しています。

これは簡単な概要に過ぎません。作業の進捗に応じて、今後も最新情報とガイダンスをお知らせします。質問や問題がある場合や、ご自身の取り組みの結果を共有したい場合は、さまざまな方法でお問い合わせいただけます。

クッキーはおいしいですが、一度に食べる量は少量にしてください。また、他の人のクッキーを盗もうとしないでください。