2013-12-22 58 views
1

java.net默認的「全系統」CookieHandler讓我感到緊張,因爲它意味着由另一個應用程序註冊的Cookie可以被另一個應用程序訪問。如果這些cookie是授權令牌,則這與「系統範圍」廣播應用程序(和用戶!)特定密碼幾乎相同。如何實現私人cookie?

我有這個權利嗎?如果我製作了一個導致cookie的HttpURLConnection,另一個java應用程序是否可以簡單地使用CookieHandler.getDefault.get(...)來獲取該cookie?各種文檔(e.g.)指的是創建一個定製的CookieHandler並設置默認的「系統範圍」,但關於後果ambiguous or non-committal - 所以雖然我可以創建自己的CookieHandler或CookieManager,但似乎無法避免地陷入「系統範圍內的默認」這可能會被其他進程訪問。 Oracle「訪問Cookie」教程(linked above)在促進「各種網頁上的小程序」的情況下討論了這一點,因爲它可能是一項功能。但是,如果我在「系統」上有HTTPS會話,如果其他進程可以獲取我的(現在解密的)身份驗證令牌,這看起來像是一個可怕的安全漏洞。

總結:

  1. 通過一個Http(s)UrlConnection則可用全系統實例化餅乾?

  2. 如果#1是真的(我意識到我可以自己測試這個,但沒有),那麼我該如何實現私人的,每個應用程序的cookies?

回答

2

Cookie是否通過HTTP(S)的URLConnection然後提供全系統的實例?

不,它們和JVM的一個運行實例一樣寬。 最常見的模型是每個應用程序都在它自己的JVM中運行,因此它們不會以這種方式共享cookie。