如何在drupal setcookie函数中设置SameSite = none

时间:2020-03-17 05:58:16

标签: drupal drupal-7

在drupal 7的set cookie中是否有任何用于添加“ SameSite = none”参数的钩子或更改钩子。

1 个答案:

答案 0 :(得分:0)

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

重要提示::此漏洞在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',
]);