在Firefox中访问第三方Cookie

9
我们正在工作中构建一个Facebook应用程序,使用iframe方法。为了使应用程序正常工作,需要在iframe内部设置cookie。
Safari默认禁用第三方cookie,因此我们目前正在将整个浏览器重定向到我们的服务器,设置所需的cookie以跟踪会话,然后再次重定向回Facebook应用程序页面。
这种方法有效,并且效果很好。除非有人使用Firefox手动禁用了第三方cookie,因为Firefox默认启用它们。Safari可以工作,因为它不允许您从iframe设置cookie,但是您可以读取它们。另一方面,Firefox不允许您读取cookie,因此变得有点不可能。
是否有办法在禁用第三方cookie时让Firefox将cookie发送到外部服务器上的iframe?

2
你是说“即使用户明确禁止,我们也需要设置第三方cookie”吗?这听起来并不完全合法。也许你可以显示一个警告“需要第三方cookie”? - Piskvor left the building
4个回答

9

当第三方cookies被禁用时,有没有办法让Firefox向外部服务器上的iframe发送cookies?

没有。而且这是好事。禁用第三方cookies应该将它们禁用。


5
一种技术是使用JavaScript在初始页面加载时对隐藏的iframe进行后台POST。一旦POST响应成功返回,您就可以设置cookie。这样可以避免影响用户体验(强制交互的插页式广告是另一种技术)。此处有更多想法和示例代码:http://gist.github.com/586182

2

是的,当您取消勾选第三方Cookie时,它不会发送或接受第三方Cookie。然而,复选框是“接受第三方Cookie”,因此它肯定似乎仍然应该/发送/ Cookie,只是不接受任何新Cookie...有点奇怪。


0
不要针对浏览器,而是针对行为。
设置cookie,在下一个页面加载时使用JS检查它们。如果它们不存在,则使用替代方法设置它们。
(并确保您不会因为没有cookie的用户而陷入无限循环)
编辑:嗯,如果FF不能读取它们,那可能会有问题。那把所有人都通过这个系统发送怎么样?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接