首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Symfony中动态更改SameSite cookie

问在Symfony中动态更改SameSite cookie
EN

Stack Overflow用户
提问于 2020-09-15 22:36:03
回答 1查看 354关注 0票数 0

此问题与他们强制设置SameSite属性(https://www.chromium.org/updates/same-site/incompatible-clients)的Chrome更新有关

通过此链接,Chrome51到66将不接受SameSite=None。但是,在Symfony设置中,我设置了以下内容:

代码语言:javascript
复制
framework:
  ...
  session:
    ...
    cookie_samesite: 'none'
    cookie_secure: true

现在,对于Chrome客户端51到66,我想要将None更改为Lax,所以我想这必须在请求级别进行更改。我知道如何检测Chrome版本,但我不确定在检测到设备后如何应用Lax。

默认情况下,我不能更改为Lax,因为网站可以是iframed。

有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2020-09-16 16:21:02

如果我理解正确的话,您需要设置2个cookies,其值相同,但名称不同。例如:

代码语言:javascript
复制
// main cookie
$cookieFirst = Cookie::create("main_cookie")
                       ->withValue("some_value_here")
                       ->withPath("/")
                       ->withExpires(0)
                       ->withSecure(true)     // important for chrome if SameSite=None
                       ->withHttpOnly(false)  // if you want access via JS
                       ->withRaw(false)
                       ->withSameSite(Cookie::SAMESITE_NONE) // SameSite=None;
// then don't forget to set this cookie to headers
// second cookie
$cookieSecond = Cookie::create("main_cookie.legacy")
                       ->withValue("some_value_here")
                       ->withPath("/")
                       ->withExpires(0)
                       ->withSecure(true)     // important for chrome if SameSite=None
                       ->withHttpOnly(false)  // if you want access via JS
                       ->withRaw(false)
                       ->withSameSite("") // SameSite=Lax;
// then don't forget to set this cookie to headers too

在域之间使用iframe实现通信时,我使用了这种方法。

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

https://stackoverflow.com/questions/63904165

复制
相关文章

相似问题

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