Apache2: Cookie の SameSite 属性、Secure属性を設定


こちらの記事と同様の事を行いました。
Cookie の SameSite 属性、Secure属性を設定する

site_a.com が iframe を使って、site_b.com の PHP を読み込んでいる状況を想定します。

site_a.com の html

php_iframe.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8" />
<title>Cookie</title>
</head>
<body>
<h2>IFRAME</h2>
<iframe height="0" id="iframe" src="https://site_b.com/cookie/te
st01.php" width="0"></iframe>
<hr />

Apr/30/2021 AM 09:24<br />
</body>
</html>
test01.php
<?php
setcookie('river', 'Kinu', ['samesite' => 'Strict']);
setcookie('mountain', 'Tsukuba', ['samesite' => 'Lax']);
setcookie('lake', 'Biwa', ['samesite' => 'None', 'secure' => true]);
setcookie('island', 'Sado');
setcookie('peninsula', 'Izu');
?>

この状態で site_a.com にアクセスしても、site_b.com の lake 以外のクッキーは読み込まれません。

そこで、site_b.com の Apache2 の設定を変更します。

Module の読み込み

sudo a2enmod headers

conf ファイルん変更

/etc/apache2/sites-available/example.conf
<VirtualHost *:443>
        ServerName site_b.com
        DocumentRoot /var/www/html

Header edit Set-Cookie "^(?!.*(\s+|;)(?i)SameSite=)(.*)" "$0; SameSite=None; Secure"
(省略)

設定ファイルの確認

sudo apache2ctl configtest

Apache2 の再起動

sudo systemctl restart apache2

この状態で site_a にアクセスすると、site_b の3つのクッキーが表示されます。
Chrome 89.0 の確認結果