gpt4 book ai didi

iframe - 嵌入在 iframe 中的外部商店使用 cookie——如果用户阻止第三方 cookie 是否可能?

转载 作者:行者123 更新时间:2023-12-04 18:06:25 27 4
gpt4 key购买 nike

假设您必须使用 iframe 将网上商店集成到我们自己的网站中。其他商店使用 cookie,如果其 cookie 被阻止,则无法营业。

如果用户阻止第 3 方 cookie 会怎样?

如果用户使用 Internet Explorer,设置 P3P Headers可以解决问题。但是,其他主要浏览器不支持 P3P。

所以,经过一些研究和实验,我意识到不可能让它在所有其他浏览器上工作。 (虽然我只能用 Firefox 和 Chrome 进行测试。)

据我了解,自 2013 年以来,Mozilla 已严格执行第三方 cookie 设置:http://webpolicy.org/2013/02/22/the-new-firefox-cookie-policy/

很多关于 iframe 中第三方 cookie 的文章都是 2013 年之前写的。我认为它们现在仍然有效。一些来源声称您至少可以访问现有的 cookie。根据我的实验,即使是这种情况也不再如此。

我的结论是否正确:

  • 是否真的无法再绕过浏览器设置?
  • 换句话说,推荐的解决方案是否只是告诉用户允许第 3 方 cookie?

如果我错了,我会很高兴听到这个消息。 :-)

我必须澄清,如果解决方案涉及需要集成的网上商店中的一些更改,那是可以的。因此,您可以假设商店的运算符(operator)会帮助您(当然,除非花费不切实际的时间和资源)。


旁注:我发现了一些可能的替代方案,但它们的实现和操作成本非常高。例如,您可以通过同一域上的代理服务器将所有流量重定向到外部商店(因此 cookie 再次成为第一方)。我读到的另一个解决方案是用本地存储替换 cookie,但这说起来容易做起来难。


如果您想重现该问题,这里是一个最简单的示例(使用 www.mercateo.co.uk):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
<title></title></head><body><h1></h1>

<p>Begin iframe</p>

<iframe width="100%" height="100%" frameborder="0" align="left" scrolling="auto" marginheight="0" marginwidth="0" id="iframe" src="http://www.mercateo.co.uk/basket/view?cookieTest=true" style="height: 586px;"></iframe>

<p>End iframe</p>
</body></html>

如果第三方 cookie 被阻止,它会将您重定向到显示“您的浏览器不接受 cookie”的错误页面。在 Chrome 和 Firefox 上测试。

最佳答案

要绕过这个问题,并且根据您关于可以要求商店进行更改的说法,您可以做的是在 iframe 应用程序和包装页面之间创建一种“桥梁”。所有主流浏览器都支持帧间通信,因此这里没有需要解决的技术差距。

因此,IFrame 应用程序会“要求您”为其设置 cookie,因为您是主域,它将在第一方工作,并且每次加载商店的 iframe 时,它​​都必须要求您提供 cookie为了能够识别用户。这是可能的,并且在技术上不是很困难,但需要应用程序基于 AJAX 而不是基于页面(在我看来,这总是更好,因为这意味着您将 View 与数据分开)。

关于iframe - 嵌入在 iframe 中的外部商店使用 cookie——如果用户阻止第三方 cookie 是否可能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25532900/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com