【问题标题】:Create Cookies based on ipaddress and port number instead of based on only ipaddress根据 IP 地址和端口号创建 Cookie,而不是仅基于 IP 地址
【发布时间】:2015-08-24 18:37:31
【问题描述】:

我正在开发 Java Web 应用程序,该应用程序主要依赖于 cookie。据我所知,cookie 是基于主机创建的。我们的应用程序也将托管在云和 Intranet 上。 以下是我的要求。 我有两个应用程序实例在同一台机器上运行,我想在同一个浏览器中访问我的应用程序。我已经访问了在同一浏览器中具有不同端口号的两个实例上运行的应用程序,如下所示: 一审:http://192.234.45.80:8081/myApp 二审:http://192.234.45.80:8082/myApp 由于我的两个实例的应用程序在同一个浏览器中运行,为第一个实例应用程序创建的 cookie 将被第二个实例应用程序覆盖。cookie 的默认行为是在主机下创建的。但是对于上述要求,我想创建cookie 基于“主机和端口号”,这样会话 cookie 将是唯一的。

我的问题: 1) 我可以使用“主机+端口号”而不是仅主机来创建 cookie 吗? 2) 如果此要求违反安全策略,我将面临哪些安全问题? 3)假设如果有办法基于“主机+端口号”创建cookie,当我在云上托管以支持DNS(指向IP地址+端口号的域名)时如何处理配置?

【问题讨论】:

    标签: java cookies browser tomcat7


    【解决方案1】:

    即使您的服务器在管理会话 ID 时考虑了“主机+端口号”,也完全取决于浏览器来尊重它。寻找这个帖子Are HTTP cookies port specific?

    对于云,强烈建议为不同的应用程序获取不同的域。 也许您可以选择通配符域,以便继续创建子域,这意味着您可以获得 *.wildcard.com DN 并继续创建子域,例如 one.widlcard.com 、 two.widlcard.com 等等,每个子域都可以托管您的应用程序,但它们也存在此处列出的风险https://casecurity.org/2014/02/26/pros-and-cons-of-single-domain-multi-domain-and-wildcard-certificates/ 子域的好处是对于您的情况,每个子域的 cookie 处理方式不同,即浏览器会将每个子域视为不同的域

    【讨论】:

    • Hello@vasa,根据您的建议,我知道可以根据主机名和端口创建 cookie。告诉我我是否错了。它适用于所有浏览器吗?
    • 我认为不...大多数浏览器将遵循大多数 RFC 标准,但我们不能依赖它..我认为对于云解决方案,在不同端口上运行相同的应用程序,甚至在不同端口上运行不同的应用程序确实如此除非您打算像 rackspace 或 godaddy 这样托管,否则没有意义。如果你想负载均衡,那么建议创建不同的虚拟机并在每个虚拟机上运行应用程序..
    • 我虽然可以通过在 cookie(setDomain(ipaddrr+port)) 中使用 api 来创建 cookie,但该 API 并不用于设置数字,它只接受字符串(域名。),之后我才知道没有解决方案可以创建这样的 cookie。如果我错了请回复
    • 您仍然可以通过 ipaddrr+port 作为字符串创建问题是所有浏览器都会尊重它吗?我认为不可靠或不可靠
    • 请问,有没有 API 可以创建这样的 cookie?
    猜你喜欢
    • 2023-03-20
    • 2014-03-14
    • 1970-01-01
    • 2010-10-30
    • 2021-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多