会话cookie集SameSite = None;安全;

时间:2020-02-01 15:00:56

标签: php google-chrome cookies header

服务器正在运行PHP 5.4.45版 从2020年2月4日开始,默认情况下,谷歌浏览器将限制跨站点跟踪。 这将导致通过iframe连接到我们网站的采购申请出现问题

我需要使用SameSite = None设置会话cookie;安全;

任何建议将不胜感激

谢谢

2 个答案:

答案 0 :(得分:3)

SameSite可从 php版本 >= 7.3php.inisession_set_cookie_params()(如果以session_set_cookie_params(array $options): bool < / p>

关于 php版本 < 7.3 ... <罢工>老实说,我不知道是否使用header()是否会覆盖session_start()设置的选项。可能,也许我会尝试更新答案。

我用php:5.6-cli做了一个简单测试(docker image,我认为是5.6.40),它似乎按预期工作:

session_start();
header('Set-Cookie: ' . session_name() . '=' . session_id() . '; SameSite=None; Secure');

默认情况下,此版本的php仅使用key=value; path=/设置会话cookie,使用header()覆盖会话,仅在响应中发送一个cookie,并且仅使用SameSite=none; Secure(在铬饼干和Wireshk包)

但是,我建议您使用所使用的php版本进行测试,其行为可能会改变。

我个人不考虑使用session_start(),将会话存储在数据库中以及使用通过header()设置的常规cookie。

答案 1 :(得分:0)

对于这样的PHP生命周期终止版本,主要是应该升级,因为已经使自己暴露于许多已知的安全漏洞中。

但是,要对此进行修补,您将需要更新可能使用setcookie()手动设置标题的位置,例如

header('Set-Cookie: cross-site-cookie=bar; SameSite=None; Secure');