假设您必须使用iframe将网上商店集成到我们自己的网站中。另一家商店使用Cookie,并且如果其Cookie被阻止,则无法运行。
如果用户阻止了第三方Cookie,该怎么办?
如果用户使用Internet Explorer,则设置P3P标头可以解决此问题。但是,其他主要浏览器不支持P3P。
因此,经过一些研究和实验,我意识到不可能使其在所有其他浏览器上都能工作。(尽管我只能使用Firefox和Chrome进行测试。)
据我了解,Mozilla自2013年以来严格执行了第三方Cookie设置:http://webpolicy.org/2013/02/22/the-new-firefox-cookie-policy/
关于iframe中第三方Cookie的许多文章是在2013年之前撰写的。我认为它们仍然无效。一些消息来源声称您至少有权访问现有的Cookie。根据我的实验,甚至不再如此。
我的结论正确吗:
如果我错了,我会很高兴听到这一消息。:-)
我必须澄清的是,如果解决方案涉及需要集成的网上商店中的某些更改,则可以。因此,您可以假设商店的运营商会为您提供帮助(当然,除非花费了不切实际的时间和资源)。
旁注:我找到了一些可能的替代方法,但是它们的实现和操作非常昂贵。例如,您可以将所有流量通过同一域上的代理服务器重定向到外部商店(这样,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上进行了测试。
不,没有适用于每种浏览器的通用解决方案。IE和Safari有解决方法,而Firefox和Chrome没有解决方法。
让我们分解一下:
1. Internet Explorer
是的,可以使用P3P协议(隐私首选项项目平台)设置第三方Cookie 。
要实现此功能,嵌入iframe的商店可以设置“ P3P HTTP响应标头”,例如:
P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTR STP IND DEM"
CP代表“紧凑政策”。“ CP”的内容在P3P规范中进行了描述。您还需要部署一个完整的P3P隐私政策所描述的这篇文章中
这是有争议的,因为浏览器无法验证信息是否正确。它必须信任发送者。引用维基百科:
使用P3P发生的一个关键问题是缺乏强制执行。因此,对P3P用户的承诺可能无法兑现。尽管通过使用P3P,公司/网站向网站的用户保证了隐私和使用收集到的数据的权利,但是如果公司决定将信息用于其他功能,则没有真正的法律后果。
结果,没有其他主流浏览器实现P3P。
2. Safari(包括iOS设备)
是的,可以访问和修改第三方Cookie。尽管通常Safari不允许您设置第三方Cookie,但它允许访问已经存在的第三方Cookie。
请注意,Safari默认情况下会阻止第三方Cookie。在Firefox和Chrome中,用户必须主动更改浏览器的cookie设置。
3. Firefox和Chrome
不可以,如果用户决定阻止第三方Cookie,则无法解决。
这两个浏览器都遵循用户的cookie设置。最后,它总是在隐私和便利之间进行权衡。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句