java.net默认的“系统范围” CookieHandler使我感到紧张,因为这意味着由一个应用程序注册的cookie可以被另一个应用程序访问。如果这些cookie是授权令牌,则与“系统范围内”广播应用程序(和用户!)专用密码几乎相同。

我有这个权利吗?如果我创建一个产生Cookie的HttpURLConnection,另一个Java应用程序可以简单地使用CookieHandler.getDefault.get(...)来获取该Cookie吗?各种文档(e.g.)指的是创建自定义的CookieHandler并设置默认的“系统范围”,但ambiguous or non-committal关于后果–因此,尽管我可以创建自己的CookieHandler或CookieManager,但似乎不可避免地陷入了困境其他进程可能会访问的“系统范围默认值”。 Oracle“访问Cookies”教程(linked above)在促进“各种网页上的小程序”(可能是功能)的上下文中对此进行了讨论。但是,如果我在“系统”上有一个HTTPS会话,那么如果其他进程可以获取我的(现在已解密的)身份验证令牌,这似乎是一个巨大的安全漏洞。

总结一下:


是否可以通过Http(s)UrlConnection实例化cookie,然后在整个系统范围内使用它们?
如果#1是正确的(我意识到我可以自己进行测试,但还不能测试),那么如何实现每个应用程序的专用cookie?

最佳答案

是否通过Http(s)UrlConnection实例化cookie,然后在整个系统范围内可用?


不。它们与一个正在运行的JVM实例一样宽。
最常见的模型是每个应用程序都在自己的JVM中运行,因此它们不会以这种方式共享cookie。

07-24 09:18