无法设置SameSite = None PHP 7.4无错误无警告

时间:2020-10-13 10:12:43

标签: php cookies samesite

我在Internet上进行搜索,试图找到将SameSite设置为无的正确方法。

我使用的是PHP 7.4.2(CLI),我还需要使用PHP 7.3及更低版本。

这些是我到目前为止尝试过的

//1
setcookie($name, $value, ['secure' => true, 'samesite' => 'None']);
//2
setcookie($name, $value, [
    'expires' => $expire,
    'path' => '',
    'domain' => '',
    'secure' => true,
    'httponly' => false,
    'samesite' => 'None',
]);

顺便说一句,这个作品

setcookie($name, $value, ['samesite' => 'Lax']); 

但这不是

setcookie($name."test4", $value, ['secure' => true, 'samesite' => 'Lax']);

这不是我的浏览器的问题,就像类似的建议所述。我没有收到任何错误或浏览器警告。这段代码什么都不做。

正如我提到的在docker上使用PHP 7.4和Apache进行工作。

1 个答案:

答案 0 :(得分:0)

原来我的语法还可以。我错过了当我将“安全”设置为“真”(作为同一地点的双重产物)的观点。

我刚刚了解到,当您在cookie上将secure设置为true时,这意味着它只会在存在安全连接的情况下设置该cookie。即该网站是否具有HTTPS。

在本地docker环境中工作,我没有HTTPS,因此这就是为什么cookie根本没有设置,没有警告或抛出错误的原因。

解决方案是获取HTTPS,我在HTTPS上安装了一个测试服务器,并在其中上传了我的应用程序,一切顺利。