PHP setcookie “SameSite=Strict”?
我最近在属性“Same Site”上阅读了“RFC 6265”,我看了一些文章,这些文章在2016年4月谈到了,“同一站点”属性已经为Chrome 51和Opera 39实现了......
我想知道当前的PHP是否支持使用此属性创建cookie?
参考:
我最近在属性“Same Site”上阅读了“RFC 6265”,我看了一些文章,这些文章在2016年4月谈到了,“同一站点”属性已经为Chrome 51和Opera 39实现了......
我想知道当前的PHP是否支持使用此属性创建cookie?
参考:
您可以使用数组来设置值,例如:$options
samesite
setcookie($name, $value, [
'expires' => time() + 86400,
'path' => '/',
'domain' => 'domain.example',
'secure' => true,
'httponly' => true,
'samesite' => 'None',
]);
同一站点元素的值应为 、 或 。None
Lax
Strict
在手册页中阅读更多内容。
您可以使用以下解决方案/解决方法之一,具体取决于您的代码库/需求
您可以将以下行添加到 Apache 配置中
Header always edit Set-Cookie (.*) "$1; SameSite=Lax"
这将使用标志更新您的所有cookieSameSite=Lax
在这里查看更多: https://blog.giantgeek.com/?p=1872
location / {
# your usual config ...
# hack, set all cookies to secure, httponly and samesite (strict or lax)
proxy_cookie_path / "/; secure; HttpOnly; SameSite=strict";
}
同样在这里,这也将更新您的所有cookie与标志SameSite=Lax
在这里查看更多: https://serverfault.com/questions/849888/add-samesite-to-cookies-using-nginx-as-reverse-proxy
header
众所周知,Cookie只是HTTP请求中的一个标头,具有以下结构
Set-Cookie: key=value; path=/; domain=example.org; HttpOnly; SameSite=Lax
所以我们可以用方法设置饼干header
header("Set-Cookie: key=value; path=/; domain=example.org; HttpOnly; SameSite=Lax");
事实上,Symfony并没有等待PHP 7.3,并且已经在引擎盖下做了,请参阅此处