2011-08-18 44 views
2

爲了測試一些東西,我一直在使用在.appspot.com域上設置cookie的技巧,它允許我在兩個不同的.appspot.com GAE應用程序之間共享數據。這已停止在Firefox 6的工作,和谷歌的人告訴我:有什麼方法可以將.appspot.com列入白名單,以便我可以在Firefox 6的該域中設置cookie?

這是因爲appspot.com加入 域的公共後綴列表現代的瀏覽器不應該允許Cookie用於設置: http://mxr.mozilla.org/mozilla-central/source/netwerk/dns/effective_tld_names.dat?raw=1

這對於普通用戶來說完全有意義。但對於我的測試,我真的希望FF將.appspot.com視爲常規域名,而不是「有效的頂級域名」。有沒有辦法「白名單」.appspot.com或以其他方式覆蓋FF中使用的effective_tld_names.dat?

(我需要一個黑客工具,將在OS X上工作,在重要的情況下。)

回答

4

不幸的是你,有沒有支持的方式做到這一點。我檢查了nsCookieService的實現方法,並且方法SetCookieStringInternal將拒絕任何主機名稱,它不能從中獲取基本名稱(現在「appspot.com」的情況就是這種情況 - 因爲Firefox引擎不再是完整的主機名)。這意味着即使擴展程序不能爲「appspot.com」設置cookie,而不是通過「手動」寫入數據庫。但這在這裏沒有多大幫助,因爲方法GetCookiesFromHost也使用基本域進行檢查,因此任何用於「appspot.com」的cookie都將被忽略。

鑑於將effective_tld_names.dat編譯到xul.dll中,更改此數據的唯一方法是在此文件上使用十六進制編輯器,例如將「appspot.com」替換爲「bppspot.com」,它應該「禁用」這個規則。請注意,像這樣的操作會中斷增量更新,您將不得不在更新後重復更新。

+0

唉。現在我們仍然可以在Safari和Chrome中使用我們的技巧,但它使得測試一些FF和PITA中的東西。謝謝。 –

相關問題