3

为了测试一些东西,我一直在使用在 .appspot.com 域上设置 cookie 的技巧,它允许我在两个不同的 .appspot.com GAE 应用程序之间共享数据。这已在 Firefox 6 中停止工作,一位谷歌人士告诉我:

这是因为 apppot.com 已添加到现代浏览器不应允许为其设置 cookie 的域的公共后缀列表中:http: //mxr.mozilla.org/mozilla-central/source/netwerk/dns/effective_tld_names.dat?原始=1

这对普通用户来说完全有意义。但是对于我的测试,我真的希望 FF 将 .appspot.com 视为常规域,而不是“有效的 TLD”。有没有办法将 .appspot.com “列入白名单”或以其他方式覆盖 FF 中使用的 effective_tld_names.dat?

(我需要一个可以在 OS X 上运行的 hack,以防万一。)

4

1 回答 1

5

对您来说不幸的是,没有支持的方法来执行此操作。我检查了实现,nsCookieService并且方法SetCookieStringInternal将拒绝任何无法从中获取基本名称的主机名(“appspot.com”现在就是这种情况 - 对于 Firefox 引擎,这不再是一个完整的主机名)。这意味着即使扩展程序也不能为“appspot.com”设置 cookie,除非“手动”写入数据库。但这在这里没有多大帮助,因为方法GetCookiesFromHost还使用基域进行检查,因此“appspot.com”的任何 cookie 都将被忽略。

鉴于 Effective_tld_names.dat 被编译到 xul.dll 中,更改此数据的唯一方法是在此文件上使用十六进制编辑器,例如将“appspot.com”替换为“bppspot.com”,这应该“禁用”此规则。请注意,这样的操作会破坏增量更新,并且您必须在更新后重复它。

于 2011-08-18T20:02:53.427 回答