勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

PHPでCookie保存時にPartitioned属性を設定する方法

  PHP

あるページをブラウザの開発者ツールで見た際に「cookie partitioned属性(Cookie “xxx” は外部のもので “Partitioned“ 属性を持たないため間もなく拒否されます。)」というメッセージが表示されていた。聞いたことの無い属性のため詳細とPHPでの設定方法をメモ。

 

Partitioned属性

サードパーティCookieをドメイン毎に分けるための属性。異なるドメイン間でのユーザの行動の追跡を防ぐことができるようになる。

詳細についてはこちらのサイトが参考になった。

 

設定方法

ソースコード

<?php
$cookie_options = array(
    'expires' => time() + 3600, 
    'path' => '/',
    'domain' => '',
    'secure' => true,
    'httponly' => true,
    'samesite' => 'None; Partitioned;'
);
setcookie('test_key', 'test_val', $cookie_options);

 

確認方法

Chromeの場合、開発者ツール→アプリケーション→Cookieを開き「Partition Key Site」にドメインが入っていればPartitioned属性が設定されている筈。Firefoxだと確認できなかった。

 

所感

GDPR対応でCookie同意のポップアップを設置することがあったが、イマイチ何が問題なのか分かっていなかった。今回のPartitioned属性で今更ながらどういった問題なのか何となく分かったので良かった。

 - PHP

  関連記事

PHPで土日祝日及び営業時間を考慮した上で翌○営業日を計算する方法
PHPで土日祝日及び営業時間を考慮した上で翌○営業日を計算する方法

PHPで翌○営業日を計算したい。例えば本日が2021/04/15で翌5営業日を計 ...

PHPにて「Fatal error: Uncaught Exception ~~」エラーの対応方法
PHPにて「Fatal error: Uncaught Exception ~~」エラーの対応方法

PHPにてDatetimeクラスの呼び出し時にタイムスタンプを指定しようとすると ...

summernoteで画像選択時にサーバにファイルをアップロードする方法
summernoteで画像選択時にサーバにファイルをアップロードする方法

summernoteで画像を選択した際、ファイルはアップロードされずBase64 ...

PHPの配列でキーの最大値を取得
PHPの配列でキーの最大値を取得

PHPの配列でキーの最大値を取得したかった。以下で対応する。 $test = a ...

PHPでjpg / png画像をAVIF形式の画像に変換する方法
PHPでjpg / png画像をAVIF形式の画像に変換する方法

PHPでjpg / png画像をAVIF形式の画像に変換しサーバに保存したい。W ...