Chrome “SameSite=none”不适用于iframe

rqenqsqc  于 2023-06-03  发布在  Go
关注(0)|答案(5)|浏览(572)

升级到Chrome版本80.0.3987.132后,不会向iframe请求发送cookie。在“网络”选项卡(Chrome开发工具)上,我没有看到针对我的请求的Cookie。
在打开选项"显示筛选出的请求cookie"后,我看到我的cookie被标记为**"由于用户偏好,此cookie未发送"**。
Cookie集的标头:

set-cookie: token=jf23HaUI91Bd8L1chHq; expires=Wed, 18-Mar-2020 16:01:59 GMT; Max-Age=1799; path=/; SameSite=None; secure; domain=.example-domain.com; HttpOnly

当我在同一个域上打开iframe时,一切都很正常,但如果它是通过http或https的第三方域,cookie将无法工作。
有没有人遇到过这个问题,或者知道如何解决这个问题?

pkbketx9

pkbketx91#

我认为您应该确保这些cookie的SameSite标志始终设置为None。如果它最初设置为Lax,然后您尝试将其设置为None,则可能无法工作。
此外,您还应确保SameSite=None Cookie的安全标志始终设置为true。

8ljdwjyq

8ljdwjyq2#

如果你使用iframe和https,sanbox你的iframe让cookie工作:

referrerpolicy="strict-origin-when-cross-origin"
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts allow-storage-access-by-user-activation allow-top-navigation-by-user-activation"
allow="encrypted-media; fullscreen; oversized-images; picture-in-picture; sync-xhr; geolocation;"
allowpaymentrequest="true"
allowpopups
allowfullscreen

不确定你还需要什么。
你也你或不需要你的服务在iframe设置cookie与额外的参数

Path=/; HttpOnly; Secure; SameSite=none
mzmfm0qo

mzmfm0qo3#

它为我工作,通过PHP设置cookie;这是一个针对php < 7.3(!)
session_set_cookie_params(3600*24,'/; SameSite= None',$_SERVER['HTTP_HOST'],true);
(secure = true很重要)

yshpjwxd

yshpjwxd4#

如果在IIS中托管,您可以在web.config中添加以下配置,以避免通过浏览器添加SameSite=Lex

<sessionState mode="InProc" **cookieless="UseCookies" cookieSameSite="None"** timeout="20"/>
ezykj2lf

ezykj2lf5#

取消选择chrome://settings/content/cookies上的阻止第三方Cookie

相关问题