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

嵌入在iframe中的外部商店使用cookie——如果用户阻止第三方cookie,是否可能?,iframe,cookies,Iframe,Cookies,假设您必须使用iframe将网络商店集成到我们自己的网站中。另一家商店使用Cookie,如果其Cookie被阻止,则无法运营 如果用户阻止第三方cookie怎么办? 如果用户使用Internet Explorer,设置可以解决此问题。但是,其他主要浏览器不支持P3P 因此,经过一些研究和实验,我意识到不可能让它在所有其他浏览器上工作。(虽然我只能用Firefox和Chrome进行测试。) 据我所知,自2013年以来,Mozilla严格执行了第三方cookie设置: 许多关于iframes中第三方

假设您必须使用iframe将网络商店集成到我们自己的网站中。另一家商店使用Cookie,如果其Cookie被阻止,则无法运营

如果用户阻止第三方cookie怎么办?

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

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

据我所知,自2013年以来,Mozilla严格执行了第三方cookie设置:

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

我的结论正确吗:

  • 是否不再可能使用浏览器设置
  • 换句话说,推荐的解决方案是否只是告诉用户允许第三方cookie
如果我错了,我会很高兴听到这一点。:-)

我必须澄清,如果解决方案涉及到需要集成的网店中的一些更改,这是可以的。因此,你可以假设商店的经营者会帮助你(当然,除非这需要不切实际的时间和资源)


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


如果你想重现这个问题,这里有一个简单的例子(使用www.mercateo.co.uk):


开始iframe

端部框架


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

不,没有通用的解决方案适用于所有浏览器。IE和Safari有变通办法,但Firefox和Chrome没有

让我们把它分解一下:

1。Internet Explorer

是的,可以使用(隐私首选项平台项目)设置第三方cookie

为了实现它,嵌入在iframe中的shop可以设置一个“P3P HTTP响应头,例如:

P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTR STP IND DEM"
CP代表“紧凑策略”。“CP”的内容如中所述)。您还需要部署完整的P3P隐私策略,如中所述

这是有争议的,因为浏览器无法验证信息是否正确。它必须信任发件人。引用自:

使用P3P时出现的一个关键问题是缺乏强制执行。因此,向P3P用户做出的承诺可能无法实现。虽然使用P3P的公司/网站向网站用户承诺隐私和使用收集的数据,但如果公司决定使用该信息,则没有真正的法律后果用于其他功能

因此,没有其他主要浏览器实现P3P

2.Safari(包括iOS设备)

可以,可以访问和修改第三方Cookie。虽然Safari通常不允许您设置第三方Cookie,但它允许访问现有的第三方Cookie

请注意,Safari默认情况下会阻止第三方cookie。在Firefox和Chrome中,用户必须主动更改浏览器的cookie设置

3.Firefox和Chrome

否,如果用户决定阻止第三方Cookie,则无法解决此问题


这两种浏览器尊重用户的cookie设置。最终,它总是在隐私和便利之间进行权衡。

你可以做什么来绕过这个问题,并根据你的声明,即可以在商店中请求更改,就是创建一种“桥梁”“在iframe应用程序和包装页之间。所有主流浏览器都支持帧间通信,因此这里没有需要解决的技术差距


因此,IFrame应用程序将“要求您”为其设置cookies,因为您是主域,它将在第1方上运行,并且每次商店的IFrame加载时,它都必须要求您提供cookies,以便能够识别用户。这是可能的,从技术上讲并不困难,但需要应用程序基于AJAX而不是基于页面(这在我看来总是更好的,因为这意味着您将视图与数据分离)。

这是意料之中的。浏览器无法知道iframe#1是一个外部有用的应用程序,而iframe#2到#99999是无用的垃圾邮件,应该阻止这些cookie。@MarcB但不久前,存在解决方法,不是吗?据我所知,Mozilla认为这是一个安全和隐私问题,并阻止了所有绕过用户设置的尝试。(至少到目前为止我是这么理解的。)
P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTR STP IND DEM"