fbm和fbsr cookies以及无cookie子域名

3

我觉得很奇怪之前没有发现这方面的内容,也许我走错了路。

但是无论如何...

我刚刚设置了一个子域来存储图像、样式等,并且出于优化目的,我不希望发送cookie。称其为static.domain.com。我已经通过将它们的域设置为www.domain.com来实现我的cookie所需的功能,但我无法弄清楚如何定义Facebook的fbm_和fbsr_ cookie所设置的域。

这可能吗?还是有其他方法防止它们被发送到static.domain.com,但在对www.domain.com的请求中正常传递?

提前感谢你!


这些 cookie 是由 Facebook 的 JavaScript 设置的,他们试图将其设置得尽可能广泛,以便能够识别用户。我能想到的唯一方法是在应用程序设置中明确地将您的应用程序所在的域指定为 www.example.com,而不仅仅是 example.com,以尝试避免在子域上设置这些 cookie。(不过我还没有尝试过这个方法。) - CBroe
他们的理由很有道理,但如果至少有一个排除子域名的选项就好了。现在,他们基本上破坏了人们使用无cookie子域名的能力。我查看了Facebook中的应用程序设置,并认为我已经找到了解决方法,但将“domain.com”更改为“www.domain.com”只会导致它完全停止工作。哦,算了... - Rikaelus
如果它“停止工作”,您用于人们登录的域是www.example.com还是仅example.com? - CBroe
你可能想再尝试一件事——不过我自己还没有尝试过,不能保证成功——在连接到Facebook之前,尝试自己设置fbm_cookie。它们在里面存储了一个形式为base_domain=.example.com的值——如果你将其设置为base_domain=example.com而没有前导点,SDK也许会尊重该值,并仅为该域设置其cookie。 - CBroe
所有的登录都在www.domain.com上进行。我已经将应用程序配置还原,但仍然无法正常工作,所以我不确定发生了什么事情。我现在根本没有得到fbm或fbsr cookie,因此目前基本上排除了进一步的测试。当那个开始工作时,我会尝试您的cookie创建想法。 - Rikaelus
1个回答

5

Cookie是在应用程序设置中定义的“应用程序域”之一上设置的。如果您列出多个域,我不确定它的行为方式,但可能会选择最接近当前域的域。

因此,如果将其设置为www.domain.com,则会在此处设置cookie,并且不会发送到static.domain.com

另外,FYI没有记录,但FB.initcookie参数可以设置为string值,其中包含cookie将设置的域。(在官方Facebook JS-SDK存储库更新实际代码或文档中有关于此功能的说明之前,我不建议在生产中使用它)


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