Cross-Origin-Embedder-Policy: credentialless
が blink で Ship された。
- https://groups.google.com/a/chromium.org/g/blink-dev/c/Zr9n9_LG7s4/m/4y-b481hBAAJ
- https://wicg.github.io/credentiallessness/
この図がすべてを物語っている。
<!-- http://ad.example.com/image.php -->
<?php
header("Access-Control-Allow-Origin: *");
setcookie('test', 'waiwai', [
'path' => '/',
'secure' => true,
'httponly' => true,
"samesite" => 'None',
]);
$name = './image.svg';
$fp = fopen($name, 'rb');
header("Content-Type: image/svg+xml");
header("Content-Length: " . filesize($name));
fpassthru($fp);
exit;
?>
Same Origin もしくは crossorigin="use-credentials"
が指定されている場合のみ Cookie が送信される。
<!-- application.com -->
<?php
header("Cross-Origin-Embedder-Policy: credentialless");
header("Cross-Origin-Opener-Policy: same-origin");
?>
<html>
<body>
<!-- ad.example.com の Cookie は送信されない -->
<img src="http://ad.example.com/image.php" />
<!-- ad.example.com の Cookie は送信される -->
<img src="http://ad.example.com/image.php" crossorigin="use-credentials" />
</body>
</html>