如何编辑 samesite=lax 的 setcookie 代码

how to edit the setcookie code for samesite=lax

我尝试了一些更改,但无法找到解决方案。 如何为 samesite=lax /or strict

编辑此 setcookie 代码
<a href="" onClick="cookienumberone('COOKIEXYZ','0','-1')">
<button type="button">buttontext</button></a>

<script>
    function cookienumberone(){
       days=30; // number of days to keep the cookie
       myDate = new Date();
       myDate.setTime(myDate.getTime()+(days*24*60*60*1000));
       document.cookie = 'COOKIEXYZ=0; expires=' + myDate.toGMTString();
    }
</script>

编辑:上述解决方案:document.cookie = 'COOKIEXYZ=0; SameSite=Lax; expires=' + myDate.toGMTString();

和登录的cookie,同样的问题:

setcookie("cookie_login",$rs->row["login"],time()+60*60*24*365,"/",str_replace("http://","",surl));

对于 client-side JavaScript,您以与 Set-Cookie header.

相同的格式指定 document.cookie

例如

document.cookie = 'same-site-cookie=foo; SameSite=Lax';
document.cookie = 'cross-site-cookie=bar; SameSite=None; Secure';

对于你的框架,似乎是PHP,截至PHP 7.3.0 setcookie() 方法 在其选项中支持 SameSite 属性并将接受 None 作为 有效值。

setcookie('same-site-cookie', 'foo', ['samesite' => 'Lax']);
setcookie('cross-site-cookie', 'bar', ['samesite' => 'None', 'secure' => true]);

对于 PHP 的早期版本,您还可以设置 header()直接:

header('Set-Cookie: same-site-cookie=foo; SameSite=Lax');
header('Set-Cookie: cross-site-cookie=bar; SameSite=None; Secure');