Php:为 cookie 属性设置 header SameSite=None;Secure 根本不起作用

Php: Set header for cookie attribute SameSite=None;Secure is not working at all

我知道针对同一个问题给出了很多解决方案,但我尝试了所有这些解决方案并且 none 它们都有效。

我尝试了以下方法,但 none 有效。我的 php 版本是 7.1,我正在使用 Codeigniter 框架。

通过在index.php

中设置header

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

通过在.htaccess中设置

Header edit Set-Cookie ^(.*)$ ";HttpOnly;Secure;SameSite=none"

通过在apache2中设置httpd.conf

Header edit Set-Cookie ^(.*)$ ";HttpOnly;Secure;SameSite=None"

我查看了 Chrmoe git 更新,它说 header('Set-Cookie: cross-site-cookie=bar; SameSite=None; Secure');

我没有得到选项 cross-site-cookie=bar。它的价值是多少。

我也试过同样的方法,但根本没用。

您好,我已经按照以下方法解决了这个问题。希望对其他人有帮助

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

Header always edit Set-Cookie ^(.*)$ ;Secure;SameSite=None

这也可能对仍在苦苦挣扎并使用 PHP >= 7.3.x 并使用 CI 3.1.11

的人有所帮助

在找到的index.php根目录中,添加下面的代码

if(isset($_COOKIE["PHPSESSID"])){
    header('Set-Cookie: PHPSESSID='.$_COOKIE["PHPSESSID"].'; SameSite=None');
}

它对我有用,在尝试了所有方法(徒劳)之后

将下面的代码粘贴到您的 .htaccess 文件中

<If "%{HTTP_USER_AGENT} !~ /(iPhone; CPU iPhone OS 1[0-4]|iPad; CPU OS 1[0-4]|iPod touch; CPU iPhone OS 1[0-4]|Macintosh; Intel Mac OS X.*Version\x2F1[0-3].*Safari|Macintosh;.*Mac OS X 10_14.* AppleWebKit.*Version\x2F1[0-3].*Safari)/i">
    Header edit Set-Cookie ^(.*)$ ;SameSite=None;Secure
</If>