【问题标题】:Different pages on same domain show different cookies (by target domain)同一域上的不同页面显示不同的 cookie(按目标域)
【发布时间】:2020-04-30 22:23:24
【问题描述】:

我有一个单点登录实现,当人们登录时,它会向网站添加 cookie。在查看一个页面时,我在 chrome Inspector 中看到了 cookie,但在同一域的另一个页面中却没有。

  • cookie 路径设置为“/”,因此所有文件都应该可用
  • 消失的 cookie 的目标域是另一个域

当我转到网站上的一个页面时,我看到许多 cookie(包括各种目标域)。

当我转到同一域中的其他页面时,我看到的 cookie 较少(似乎都以本地域为目标

使用 Apache、SSL、Ubuntu,它是一个子域,它是一个会话 cookie,在 url 中使用完全相同的 https 和 www,都是标准的东西。

为什么同一域上的不同页面会显示不同的 cookie(在 chrome Inspector 中)?

显然这里的线索是 cookie 目标域,但为什么这是一个问题?

【问题讨论】:

标签: php apache codeigniter session-cookies openid-connect


【解决方案1】:

只有在当前页面的上下文中发生对这些域的任何请求时,才会显示第三方 cookie。

假设您的域是 A,并且您在浏览器中为域 B 设置了 cookie。

您的页面1 嵌入了来自域B一些东西 - 可以是图像、脚本文件…… - 任何会导致对域B 进行实际HTTP 请求的任何东西。然后您将在开发工具中看到域 B 的 cookie。

您的页面2 但是没有嵌入来自域B 的任何此类资源。 B 的任何 cookie 现在实际上都不会“参与”此页面 2 上发生的事情 - 因此,当您在页面 2 上时,开发工具现在也不需要或没有理由显示它们。

【讨论】:

  • 是的,我试过了,这就是它的工作原理!因此,即使 cookie 全局存在于站点上,该工具也不会显示它,除非页面上有对域的引用。调试非常混乱,因为它看起来好像从未收到过 cookie!
猜你喜欢
  • 2022-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-27
  • 2011-03-15
  • 2010-10-04
  • 2013-08-28
  • 2011-10-03
相关资源
最近更新 更多