【发布时间】:2014-01-10 23:35:40
【问题描述】:
java.net 默认的“系统范围”CookieHandler 让我很紧张,因为它意味着一个应用程序注册的 cookie 可以被另一个应用程序访问。如果这些 cookie 是授权令牌,这几乎与“系统范围”广播应用程序(和用户!)特定密码相同。
我有这个权利吗?如果我创建了一个导致 cookie 的HttpURLConnection,那么另一个 java 应用程序是否可以简单地使用 CookieHandler.getDefault.get(...) 来获取该 cookie?各种文档(e.g.) 指的是创建一个自定义的 CookieHandler 并设置默认的“系统范围”,但ambiguous or non-committal 是关于后果的——所以虽然我可以创建自己的 CookieHandler 或CookieManager,但似乎这不可避免地会陷入困境其他进程可以访问的“系统范围的默认值”。 Oracle“访问 Cookie”教程 (linked above) 在促进“各种网页上的小程序”的上下文中讨论了这一点,当它可能是一个特性时。但是,如果我在“系统”上有一个 HTTPS 会话,如果其他进程可以获取我的(现已解密的)身份验证令牌,这似乎是一个巨大的安全漏洞。
总结一下:
cookie 是否通过
Http(s)UrlConnection实例化,然后在系统范围内可用?如果 #1 为真(我意识到我可以自己测试但没有),那么如何实现每个应用程序的私有 cookie?
【问题讨论】:
标签: java cookies session-cookies