Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php:设置cookie属性SameSite=None的头;安全系统根本不起作用_Php_Codeigniter_Cookies_Header_Samesite - Fatal编程技术网

Php:设置cookie属性SameSite=None的头;安全系统根本不起作用

Php:设置cookie属性SameSite=None的头;安全系统根本不起作用,php,codeigniter,cookies,header,samesite,Php,Codeigniter,Cookies,Header,Samesite,我知道对于同一个问题有很多解决方案,但我都试过了,没有一个有效 我尝试过以下方法,但没有一种有效。我的php版本是7.1,我使用的是Codeigniter框架 通过在index.php中设置标头 header('Set-Cookie:HttpOnly;SameSite=None;Secure') 通过在.htaccess中设置 Header编辑集Cookie^(.*)“$1;HttpOnly;Secure;SameSite=none” 通过在apache2 httpd.conf中设置 Heade

我知道对于同一个问题有很多解决方案,但我都试过了,没有一个有效

我尝试过以下方法,但没有一种有效。我的php版本是7.1,我使用的是Codeigniter框架

通过在index.php中设置标头

header('Set-Cookie:HttpOnly;SameSite=None;Secure')

通过在.htaccess中设置

Header编辑集Cookie^(.*)“$1;HttpOnly;Secure;SameSite=none”

通过在apache2 httpd.conf中设置

Header编辑集Cookie^(.*)“$1;HttpOnly;Secure;SameSite=None”

“我已经审查了Chrmoe git的更新,”它说
header('Set-Cookie:cross-site Cookie=bar;SameSite=None;Secure')

我没有得到选项
跨站点cookie=bar
。它的价值是什么


我也尝试了同样的方法,但根本不起作用。

您好,我通过以下方法解决了这个问题。希望对其他人有所帮助

在httpd.conf中(对于bitnami服务器,文件将是/opt/bitnami/apache2/conf)


这也可能对仍在挣扎的人有所帮助,他们可以使用PHP>=7.3.x和CI 3.1.11


在根目录中找到的index.php中,添加下面的代码“我没有得到选项
跨站点cookie=bar
”——这只是cookie的名称和值……我已经尝试过了。我正在设置我的cookie值和名称,但它不起作用。我只是在PHP7.2下测试了它,它按预期工作。如果不适合您,请给出一个适当的问题描述。在Dhara的响应中添加(因为我的帐户太新,无法评论),Apache文档说响应头来自两组内部表。因此,有些东西需要“总是”才能工作,而另一些东西需要“总是”才能工作。在我的例子中,Ubuntu18.04、Apache2.4.29我必须删除“始终”,以便在PHP7.2中编辑标题。文档似乎建议您可以使用两个指令来覆盖所有基础,但我还没有测试过。不要使用这个。将此硬编码到Apache conf或.htaccess中会导致不兼容的浏览器完全拒绝cookie,因为它们不理解SameSite=None。您需要嗅探useragent以确定SameSite=None是否能在特定浏览器上工作。谷歌概述了这一过程:
Header always edit Set-Cookie ^(.*)$ $1;Secure;SameSite=None
if(isset($_COOKIE["PHPSESSID"])){
    header('Set-Cookie: PHPSESSID='.$_COOKIE["PHPSESSID"].'; SameSite=None');
}