1

如果有任何钩子或更改用于在 drupal 7 的设置 cookie 中添加“SameSite=none”参数。

4

1 回答 1

1

这个有点棘手,因为 PHP 5 没有 SameSite:None 的标志;安全的; 使用 setcookie() 或 setrawcookie() 时。PHP 7 可以,但是由于这些函数不会转义分号,我们可以将它添加到 'domain' 标志中,它会被设置...

重要提示:此 hack 将在 PHP 7.3 中中断。如果您要使用它,至少将其包装在 PHP 版本检查中,例如if (PHP_VERSION_ID < 70300) { ... } else { ... }

setrawcookie('cookie_name', 'cookie_value', time() + 7700, '/', 'example.com; SameSite=none;');

对于早期版本的 PHP,可以直接设置 header():

header('Set-Cookie: cookie_name=cookie_value; SameSite=None;');

从 PHP 7.3.0 开始, setcookie() 方法在其选项中支持 SameSite 属性,并将接受 None 作为有效值。见https://www.php.net/manual/en/function.setcookie.php

setcookie($name, $value, [
    'expires' => time() + 86400,
    'path' => '/',
    'secure' => true,
    'samesite' => 'None',
]);
于 2020-04-02T19:16:14.290 回答