Cookie 同意弹出窗口不会在 IFrame 中消失
Posted
技术标签:
【中文标题】Cookie 同意弹出窗口不会在 IFrame 中消失【英文标题】:Cookie consent popup does not disappear in IFrame 【发布时间】:2021-03-03 19:11:06 【问题描述】:在我们的应用程序中,我们有一个 IFrame,用于显示任何站点(通过 admin/crm 控制台设置)。在 IFrame 中显示带有 cookie 同意弹出窗口的站点时,我们遇到了一个奇怪的问题。在 IFrame 中,即使用户接受 Cookie 同意,在后续请求中也会再次出现弹出窗口。看起来 IFrame 无法发送或设置 cookie。
当我们在浏览器选项卡中打开网站时,一旦我们接受 cookie,弹出窗口就不会再次出现。可能会发生什么?一旦用户在 IFrame 中接受这些 cookie 同意弹出窗口,我们如何才能摆脱这些弹出窗口?请注意,我们无法控制 IFrame 中显示的网站。
我尝试了带有 IFrame 的简单 html 页面,问题在那里复制,代码如下
<html>
<head>
<title>IFrame issue</title>
</head>
<body>
<iframe src="https://www.nutrition.org.uk/" title="IFrame Example" ></iframe>
</body>
</html>
弹窗截图(页面底部为黑色)
更新:-
我检查了为本网站设置的 cookie, 当用户单击“确定”按钮时,在普通浏览器选项卡中。设置了一个新的 cookie,例如在这种情况下“cookieAcceptanceCookie”="accepted"。检查下图,
我用 IFrame 检查过,也设置了相同的 cookie。检查下图。
所以看起来问题仍然存在于在后续请求中发送此 cookie。我猜普通浏览器选项卡可以发送此 cookie,而 IFrame 无法发送它,因此此问题出现在 IFrame 中。
【问题讨论】:
【参考方案1】:这实际上是浏览器常见的隐私功能,即不允许 iframe 设置 Cookie。这是针对 CSRF 的保护和反跟踪功能,因为网站长期以来一直通过来自 iframe 的 cookie 跟踪用户。
您可能需要在 chrome://settings/content/cookies 中指示您的用户Allow third-party cookies
,可能会创建一个页面like this one。
如果您控制 iframe 内的网站,则可以使用 SameSite=None ..... 但不幸的是,这不适用,因为您无法控制它们。
【讨论】:
以上是关于Cookie 同意弹出窗口不会在 IFrame 中消失的主要内容,如果未能解决你的问题,请参考以下文章