2011-11-28 66 views
0

当用户访问我的网站“www.mysite.com”时,我为该特定用户设置了一个cookie。 接下来,用户转到Facebook,登录到应用程序选项卡并单击类似按钮。一个外部页面“www.mysite.com/facebooktab.html”被加载到Facebook画布中。 1.现在,我可以从facebooktab.html访问早先在www.mysite.com上设置的cookie吗? 2.加载到Facebook的页面是否显示与我在浏览器中访问www.mysite.com/facebooktab.html时的行为相同的行为,除了当页面在Facebook中加载时,我有一些额外的用户属性可供我使用(因为用户在Facebook上登录)?加载到Facebook应用程序选项卡时的页面行为

回答

1

这两种情况的关键区别在于,当您的页面直接加载时,您设置/读取的Cookie是“第一方”Cookie;当您的页面在Facebook框架内加载时,Cookie变成“第三方”。每个浏览器都有自己的一套规则,但它们都将不同的策略应用于第三方Cookie与第一方Cookie。你提到你最初直接在你的网站上设置cookie(第一方模式),然后只在页面在Facebook(第三方模式)内时才能阅读。大多数浏览器将允许没有限制,因为他们只应用更严格的第三方策略来写入cookie而不读取。 Firefox是个例外,它将读写权限集中在一起。如果Firefox用户在其配置中清除了“接受第三方Cookie”框,即使您的网页直接设置在您的网站上,Facebook上的页面也将无法读取您之前设置的cookie。

+0

所以,相反,当用户开始访问我的Facebook页面并设置cookie时,这是第三方cookie?当用户访问我的网站时,我想查看当他在Facebook上时,在Firefox中根据配置情况在cookie中设置了哪些数据,我可能无法读取它? – Flo

+0

这样做(从Facebook页面中设置cookie)您正在编写第三方cookie,事情变得更加复杂 - 您必须考虑不同浏览器的行为以及用户的特定配置。如果我没有记错,Safari的默认配置是最严格的; Firefox和Chrome允许默认写入,但用户经常更改; IE有一些愚蠢的默认规则,除非您还发送适当的P3P标头,否则不允许写入。底线是,你永远不能依赖于所有能够设置cookie的用户。 –

+0

哇,谢谢! :) – Flo

相关问题