首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于静态站点的Cookie :Cookie将很快被拒绝(SameSite)问题

问用于静态站点的Cookie :Cookie将很快被拒绝(SameSite)问题
EN

Stack Overflow用户
提问于 2020-07-22 19:44:43
回答 1查看 1.7K关注 0票数 2

我正在创建一个静态网站(将发布在github页面上),并希望使用cookie为用户存储网站状态。但是,在设置cookie时会出现以下错误:

Cookie“buttonState”将很快被拒绝,因为它将“sameSite”属性设置为“none”或无效值,而没有“secure”属性。要了解有关“sameSite”属性的更多信息,请阅读https://developer.mozilla.org/docs/Web/HTTP/Headers/Set-Cookie/SameSite

我一直在使用以下js代码来设置cookie:

代码语言:javascript
复制
function set_cookies(jsonObj={},expires="",path="/"){
for(var key in jsonObj){
    var temp = (key+"="+jsonObj[key]+";");
    if(expires!=="")
        temp += ("expires="+expires+";");
    if(path!=="")
        temp+= ("path="+path);
    console.log(temp);
    document.cookie = temp;
  }
}
set_cookies({"buttonState":"compile");

我该如何处理这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-30 19:38:13

我也在我们的网站上处理过这件事。您需要将";sameSite=Lax"附加到临时变量中。这就是浏览器现在希望看到的。根据您提供的链接,Mozilla文档说,Lax的定义是:

"Cookies“允许与顶级导航一起发送,并将与第三方网站发起的GET请求一起发送。这是现代浏览器中的默认值。

后来,在“无”下,它说:

"None“曾经是默认值,但最近的浏览器版本使得缺省值变得宽松,从而对某些类型的跨站点请求伪造(CSRF)攻击具有相当强的防御能力。

然后,在其中一个例子中,它说:

“虽然您可以依靠现代浏览器自动应用SameSite=Lax,但是您应该明确地指定它,以清楚地传达您的SameSite策略应用于您的cookie的意图。这也将改善跨浏览器的体验,因为并非所有浏览器都默认为Lax。”

。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63042039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档