一尘不染

PHP setcookie“ SameSite = Strict”?

php

我最近在属性“ Same Site”上阅读了“ RFC 6265”,我看了一些有关2016年4月的文章,Chrome 51和Opera 39已经实现了“
same-site”属性…

我想知道当前的PHP是否支持使用此属性创建cookie?


阅读 541

收藏
2020-05-29

共1个答案

一尘不染

[ 重要更新: 正如@caw在下面指出的那样,此hack 将在PHP 7.3中崩溃。现在就停止使用它,以保护自己免受不愉快的意外!或至少将其包装在PHP版本检查中,如[
if (PHP_VERSION_ID < 70300) { ... } else { ... }]。

似乎您可以滥用PHP的“ setcookie”函数的“ path”或“ domain”参数来潜入SameSite属性,因为PHP不能转义分号:

setcookie('samesite-test', '1', 0, '/; samesite=strict');

然后,PHP发送以下HTTP标头:

Set-Cookie:samesite-test = 1; 路径= /; samesite =严格

几分钟前我才发现了这一点,所以请您自己进行测试!我正在使用PHP 7.1.11。

2020-05-29