PHP使用samesite设置会话Cookie
我目前有一个PHP脚本,它将sametime cookie设置为:PHP使用samesite设置会话Cookie,php,cookies,Php,Cookies,我目前有一个PHP脚本,它将sametime cookie设置为: session_set_cookie_params($cookie_timeout, $cookieParams["path"], $cookie_domain, $session_secure, $cookie_httponly); 我想通过添加额外的参数($cookie\u samesite=“Lax”)将samesite=“Lax”添加到上述语句中 语句的新输出如下所示 1800,/,“.vasports.com
session_set_cookie_params($cookie_timeout, $cookieParams["path"], $cookie_domain, $session_secure, $cookie_httponly);
我想通过添加额外的参数($cookie\u samesite=“Lax”)将samesite=“Lax”添加到上述语句中
语句的新输出如下所示
1800,/,“.vasports.com.au”,1,1,“Lax”
这是samesite参数的正确格式吗
注意:我还没有安装PHP7.3。因此我不能正确地测试这个。
我在“session\u set\u cookie\u params”中提到了PHPDoco。
我也查过了
经过进一步研究
set-cookie: ssid=b930bc608a911781f459a4f46b2c513d; expires=Wed, 16-Oct-2019 10:48:49 GMT; Max-Age=1800; path=/; secure; HttpOnly; SameSite=Lax
从PHP7.3开始,您可以将一个选项数组抛出到支持SameSite的set_cookie_参数中
session_set_cookie_params([
'lifetime' => $cookie_timeout,
'path' => '/',
'domain' => $cookie_domain,
'secure' => $session_secure,
'httponly' => $cookie_httponly,
'samesite' => 'Lax'
]);
在PHP$cookie\u超时时,
'路径'=>'/;SameSite=none',/$cookie\u域,
“安全”=>$session\u安全,
“httponly”=>$cookie\u httponly,
“samesite”=>“Lax”
]);
改编自SilverShadow answer,但修复了php的语法,他说他没有7.3版本,所以他在之前的另一个版本中寻找答案Version@nbk不,他说他无法测试它,因为7.3还没有安装。在7.3以下,不可能通过cookie参数,那么您需要更改标头。此外,这是我在搜索后登陆的页面,因此可能对其他人也是如此,首先获取cookie参数,然后再次设置它们是额外的开销。我认为这是7.3+atm的最佳方法。这是我需要的答案。但我最终还是升级到了PHP7.3,并对其进行了测试,以确认其工作正常。-感谢您的回复。同事们,关于PHP,我在PHP5.6上,为了在iFrame中设置cookie,我使用以下代码让我的页面在Chrome84上再次工作:session_set_cookie_params(3600*24,“/;SameSite=None”,$_SERVER['HTTP_HOST',true);将安全设置为“true”很重要。(最好关闭浏览器并清除缓存进行测试)这应该是可以接受的答案,因为PHP<7.3不支持带有参数数组的替代签名。
set-cookie: ssid=b930bc608a911781f459a4f46b2c513d; expires=Wed, 16-Oct-2019 10:48:49 GMT; Max-Age=1800; path=/; secure; HttpOnly; SameSite=Lax
session_set_cookie_params([
'lifetime' => $cookie_timeout,
'path' => '/',
'domain' => $cookie_domain,
'secure' => $session_secure,
'httponly' => $cookie_httponly,
'samesite' => 'Lax'
]);
session_set_cookie_params([
'lifetime' => $cookie_timeout,
'path' => '/;SameSite=none', // <-- this way!
'domain' => $cookie_domain,
'secure' => $session_secure,
'httponly' => $cookie_httponly,
'samesite' => 'Lax'
]);