首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何告诉PHP对跨站点cookie使用SameSite=None?

如何告诉PHP对跨站点cookie使用SameSite=None?
EN

Stack Overflow用户
提问于 2019-12-30 10:05:24
回答 6查看 42.5K关注 0票数 24

根据本文中关于https://php.watch/articles/PHP-Samesite-cookieshttps://www.php.net/manual/en/session.security.ini.php文档的文章,对于这个新特性,只有两个可能的配置选项,添加在PHP7.3中:

  1. session.cookie_samesite=Lax
  2. session.cookie_samesite=Strict

然而,根据Chrome控制台的说法,这需要设置为“无”:

在没有SameSite属性的情况下,设置了与位于URL的跨站点资源关联的cookie。它已经被阻止了,因为Chrome现在只提供带有跨站点请求的cookie,如果它们是用SameSite=NoneSecure设置的。您可以在Application>Storage>Cookies下查看开发工具中的cookie,并在URL和URL上查看更多详细信息。

因为这个,我不能再设置跨站点的曲奇了。解决办法是什么?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2019-12-30 10:19:02

可以使用ini_set将值设置为"None“。在使用该函数时,不检查是否支持该值:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ini_set('session.cookie_samesite', 'None');
session_start();

session_set_cookie_params也可以设置它:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
session_set_cookie_params(['samesite' => 'None']);
session_start();

php.ini中支持的bug报告是这里

正如@虾车下面的评论中所说的那样,session.cookie_secure必须是true才能工作。PHP不需要它,但是浏览器需要它。

票数 39
EN

Stack Overflow用户

发布于 2020-08-26 20:55:15

ini_set('session.cookie_secure', "1"); ini_set('session.cookie_httponly', "1"); ini_set('session.cookie_samesite','None'); session_start();

phpinfo中的PHP7.4samesite

phpinfo中不存在PHP7.2 samesite

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$currentCookieParams = session_get_cookie_params();
$cookie_domain= 'your domain';
if (PHP_VERSION_ID >= 70300) {
session_set_cookie_params([
    'lifetime' =>  $currentCookieParams["lifetime"],
    'path' => '/',
    'domain' => $cookie_domain,
    'secure' => "1",
    'httponly' => "1",
    'samesite' => 'None',
]);
} else {
session_set_cookie_params(
    $currentCookieParams["lifetime"],
    '/; samesite=None',
    $cookie_domain,
    "1",
    "1"
);
}
session_start();
票数 6
EN

Stack Overflow用户

发布于 2020-04-21 03:38:34

坏:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
session.cookie_samesite=None

正确:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
session.cookie_samesite="None"

解释这里

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59534999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文