服务器正在运行PHP 5.4.45版 从2020年2月4日开始,默认情况下,谷歌浏览器将限制跨站点跟踪。 这将导致通过iframe连接到我们网站的采购申请出现问题
我需要使用SameSite = None设置会话cookie;安全;
任何建议将不胜感激
谢谢
答案 0 :(得分:3)
SameSite
可从 php版本 >= 7.3
,php.ini和session_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');