PHPでCookie保存時にPartitioned属性を設定する方法
あるページをブラウザの開発者ツールで見た際に「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で改行を含むデータをCSV化する際に表示崩れを防ぐ方法
PHPで改行を含むデータをCSV化した場合、そのCSVファイルをエクセル等で開く ...
-
-
PHPにて三項演算子をより簡単に書けるNull合体演算子について
PHPにて〇〇という変数もしくは配列に値があれば××という変数にその値を格納、無 ...
-
-
PHPからDBX Platformを利用してDropbox内のファイル一覧を取得する方法
以前にPHPからDropboxにファイルをアップロードするという記事を書いたが、 ...
-
-
PHPのZipArchive::addFileでファイルが追加できない場合の対応方法
過去記事を参考にPHPにて複数のファイルをzipファイル化後、ダウンロードさせた ...
-
-
PHPで画像を比較して類似度を算出する「image-comparator」ライブラリの利用方法
PHPで画像の類似度を計測したい。ただ、そのためのロジックが全く分からないためラ ...