mcpField
C
cnil-compliant-cookies

cnil-compliant-cookies

github.com/mukul975セキュリティ32340 回インストール32 週間前に更新
リポジトリ

cnil-compliant-cookies について

CNILのCookie同意規則に対応するウェブサイト・プライバシーチーム向けの実装ガイドです。同意と拒否の同等表示、Cookieウォールの禁止、同意の再取得、情報開示を解説します。

主な機能

  1. 01同意と拒否の選択肢を同等に表示
  2. 02Cookieウォールの回避
  3. 03最長6か月ごとの同意再取得
  4. 04必須Cookieの免除条件
  5. 05目的・第三者・保存期間の開示

活用シーン

  1. 01Cookie同意バナーを設計
  2. 02拒否を同じ手軽さで選べるか確認
  3. 03同意更新と情報開示を計画

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mukul975/privacy-data-protection-skills --skill cnil-compliant-cookies

インストール後、Claude Code で/cnil-compliant-cookiesを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

assets/
template.md
references/
standards.md
workflows.md
scripts/
process.py

詳細

CNIL に準拠した Cookie の実装

概要

フランスの情報処理と自由に関する国家委員会(Commission Nationale de l'Informatique et des Libertés、CNIL)は、Cookie の同意ルールを最も積極的に執行している欧州の機関です。2022 年 1 月、CNIL は Cookie の同意違反を理由に、Google LLC に 1 億 5,000 万ユーロ、Meta Platforms Ireland Ltd. に 6,000 万ユーロの罰金を科しました。これらの執行措置と、CNIL 決定第 2020-091 号(2020 年 9 月 17 日)により、欧州で最も詳細な Cookie 同意基準が定められています。

CNIL の Cookie 同意要件

1. 同意と拒否を同等に目立たせる(CNIL 決定 2020-091、第 2.1 項)

要件: ユーザーが Cookie を受け入れる場合と同じくらい簡単に拒否できる必要があります。「すべて拒否」オプションは、「すべて受け入れる」オプションと同等の視覚的な目立ちやすさで表示する必要があります。

CNIL の具体的な要件:

  • 「すべて受け入れる」と「すべて拒否する」のボタンは、同じ階層(インターフェースの同じレイヤー)に配置する必要があります
  • 両方のボタンの視覚的な扱い(サイズ、色、フォント、位置)は同等でなければなりません
  • どちらのボタンも、もう一方より視覚的に目立たせたり、目立たなくしたりしてはなりません
  • 「設定を管理」オプションを 3 つ目の選択肢として提示してもかまいませんが、「すべて拒否する」の代わりにしてはなりません

CloudVault SaaS Inc. の実装:

┌─────────────────────────────────────────────────────────────┐
│  CloudVault uses cookies to improve your experience.        │
│  [Learn more about our cookie use]                          │
│                                                             │
│  ┌──────────────────┐  ┌──────────────────┐                │
│  │  Accept All       │  │  Refuse All       │               │
│  └──────────────────┘  └──────────────────┘                │
│                                                             │
│  [Manage Preferences]                                       │
└─────────────────────────────────────────────────────────────┘

Button specifications:
- Both: 200x44px, #2563EB blue background, white text, 16px bold
- Position: side by side, same vertical level
- "Manage Preferences": text link below, #6B7280 grey, 14px regular
2. Cookie ウォールの禁止(CNIL 決定 2020-091、第 2.2 項)

要件: ウェブサイトまたはサービスへのアクセスを、Cookie の受け入れを条件としてはなりません。すべての Cookie を拒否したユーザーも、同じコンテンツと機能にアクセスできる必要があります。

例外:

  • CNIL は、一部の機能(例:パーソナライズされたおすすめ)には Cookie が必要な場合があることを認めています。その場合は、機能を制限しつつも利用可能なエクスペリエンスを提供する必要があります。
  • ペイウォールと Cookie ウォールの違い:CNIL は、有料の Cookie 不使用の代替手段を、Cookie を利用した無料の選択肢と併せて提供することは、一定の条件下で認められる可能性があると示しています(決定第 2022-003 号)。これは「支払いか同意か」モデルと呼ばれますが、現在も議論が続いています。
3. 6 か月ごとの同意の再取得(CNIL 決定 2020-091、第 2.3 項)

要件: 適切な間隔で同意を更新する必要があります。CNIL は、同意を再度求めるまでの期間を最長 6 か月とすることを推奨しています。

実装:

  • 同意日を記録したファーストパーティ Cookie cv_consent_timestamp を設定します
  • 180 日後に、同意バナーを再表示します
  • ユーザーが以前に拒否していた場合は、再度確認します(気が変わっている可能性があります)
  • ユーザーが以前に受け入れていた場合も、再度確認します(引き続き同意するか確認する必要があります)
4. 必須 Cookie の適用除外(CNIL 決定 2020-091、第 3 項)

CNIL のガイダンスによると、以下のカテゴリーには同意が不要です。

カテゴリー例正当化の理由
認証セッション Cookie、CSRF トークンセキュリティ上、厳密に必要
負荷分散サーバールーティング Cookieサービスの提供に厳密に必要
ユーザー設定言語、表示設定要求された機能に厳密に必要
ショッピングカートカートセッション Cookie要求されたサービスに厳密に必要
ファーストパーティ分析(限定的)範囲を限定したオーディエンス測定ファーストパーティによる集計のみの分析に対する CNIL の適用除外(厳格な条件あり)

ファーストパーティ分析の適用除外に関する CNIL の条件:

  • データは集計統計分析のみに使用すること
  • データを他の処理と照合しないこと
  • Cookie を単一のサイトに限定すること
  • IP アドレスを匿名化または切り詰めること
  • Cookie の有効期間を 13 か月以内、データの保持期間を 25 か月以内とすること
  • Cookie の使用と異議を申し立てる権利についてユーザーに通知すること
  • サイト間で個人を追跡できるようにしないこと
5. 包括的な情報提供(CNIL 決定 2020-091、第 2.4 項)

同意を得る前に、ユーザーに以下の情報を提供する必要があります。

  • Cookie を使用するすべての組織の身元(管理者およびサードパーティ)
  • Cookie の各カテゴリーの具体的な目的
  • 受け入れる場合と拒否する場合の結果
  • 同意を撤回する方法
  • Cookie の保持期間

CNIL の執行事例

対象制裁金日付審議番号主な違反
Google LLCEUR 150,000,0002022年1月6日2022-013最初の画面に「すべて拒否」がない。拒否するには複数回クリックする必要がある
Meta PlatformsEUR 60,000,0002022年1月6日2022-014最初の画面には「同意する」があり、「拒否する」は二次ページの奥に埋もれている
Microsoft IrelandEUR 60,000,0002022年12月22日2022-023bing.com:「同意する」と同等に目立つ「拒否する」がない
TikTokEUR 5,000,0002022年12月29日2022-025同意するより拒否するほうが複雑。情報が不十分
Voodoo(モバイルゲーム)EUR 3,000,0002023年1月2023-004同意なしに広告目的で Apple IDFA を使用
Apple DistributionEUR 8,000,0002023年1月4日2023-001有効な同意なしに App Store でターゲティング広告を実施

実装チェックリスト

#要件CNIL の参照先CloudVault の状況
1最初の画面に「すべて拒否」ボタンを設置審議 2020-091 第2.1節実装済み
2同意と拒否の視覚的な目立ちやすさを同等にする審議 2020-091 第2.1節どちらも200x44px、同じ色
3クッキーウォールを設けない審議 2020-091 第2.2節クッキーなしで全面的にアクセス可能
4最大6か月ごとに再同意を求める審議 2020-091 第2.3節180日ごとの再同意サイクル
5必須クッキーを文書化し、適用除外とする審議 2020-091 第3節4つの必須クッキーを記載
6第三者を名称で特定する審議 2020-091 第2.4節すべての第三者を名称で記載
7クッキーの目的を説明する審議 2020-091 第2.4節カテゴリーごとに説明
8クッキーの保存期間を明示する審議 2020-091 第2.4節CNIL に従い最大13か月
9同意の撤回を、同意の付与と同じくらい簡単にするGDPR 第7条第3項すべてのページにフッターリンクを設置
10同意記録を保管するGDPR 第7条第1項完全な監査証跡

主な規制関連の参照先

  • CNIL 審議第2020-091号(2020年9月17日)— クッキーに関するガイドライン
  • CNIL 審議第2022-013号 — Google への制裁金(EUR 150M)
  • CNIL 審議第2022-014号 — Meta への制裁金(EUR 60M)
  • CNIL 審議第2022-023号 — Microsoft への制裁金(EUR 60M)
  • ePrivacy 指令第5条第3項 — デバイスへの保存に関する同意
  • GDPR 第7条 — 同意の条件
  • EDPB ガイドライン 05/2020 — 規則 2016/679 に基づく同意

コメント