如何为samesite = lax编辑setcookie代码

时间:2020-02-26 00:37:03

标签: samesite

我尝试了几次更改,但无法获得解决方案。 如何为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));

1 个答案:

答案 0 :(得分:1)

对于客户端JavaScript,请以与document.cookie标头相同的格式指定Set-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');