【问题标题】:HTTP pages are removing my secure cookiesHTTP 页面正在删除我的安全 cookie
【发布时间】:2013-05-20 00:04:27
【问题描述】:

我有一个混合使用 HTTP / HTTPS 的站点。当用户登录时,她会得到两个 cookie:

  • 带有她(签名)用户名、登录过期时间和“不安全”标志的常规 cookie
  • 带有她(签名)用户名、登录过期时间和“安全”标志的安全 cookie
    • 请注意,如果您在签名内容中没有安全/不安全标志,攻击者可以拦截常规 cookie,然后将其作为安全 cookie 发送(我的第一个实现犯了这个错误)

我在 HTTP 页面上使用常规 cookie(只是为了在她浏览网站的营销部分时显示她的名字)。然后,当她在 HTTPS 页面(任何用户特定页面)上时,我使用安全 cookie。

我的想法来自Secure cookies and mixed https/http site usage

一切都很好,除了当用户从 HTTPS 页面导航到 HTTP 页面时,所有的安全 cookie 都会被删除 - 这意味着他们即使在访问单个 HTTP 页面后也无法返回 HTTPS 页面。我应该提一下,有一个“301 永久移动”将用户从 HTTPS 重定向到 HTTP。

我的网站没有清除安全 cookie。我知道浏览器不应该在用户查看 HTTP 站点时向我发送安全 cookie,但我希望 cookie 在其生命周期内一直存在,并在用户再次访问 HTTPS 页面时发送。

我在 Chrome、Firefox 和 IE 上遇到了同样的行为。有小费吗?我希望这不是预期的行为...

【问题讨论】:

  • 这可能是一个愚蠢的问题,但为什么首先要混合使用 http 和 https 呢?为什么不在你的所有网站上都使用 https 呢?
  • cookies有不同的名字吗?
  • 绝对是一个有效的问题!该网站有很多营销和文档。您可以轻松地将其全部放在 https 下,这很好。除了现在您的 URL 看起来像“secure.domain.com”而不是“www.domain.com”。并且文档和诸如此类的东西有点松散(评论和诸如此类)。而用户页面是非常敏感的操作。我希望用户知道他们在“www-land”或“secure-land”中。而且我太穷了,无法购买另一个 SSL 证书 ;-)
  • Cookie 确实有不同的名称,例如“cookie_secure”、“cookie_regular”。它们都有相同的路径“/”,但这应该没问题。

标签: security session cookies https session-cookies


【解决方案1】:

哎呀,太尴尬了。这就是我的问题所在。

  • 当用户尝试从 HTTP 访问 HTTPS 站点时,他们的请求将以 HTTP 开始
  • 我会检查他们的登录凭据(这会失败,因为安全 cookie 不存在),然后将他们重定向到 HTTPS。我的“需要登录”和“需要 HTTPS”系统是分开的(现在是一个糟糕的设计,但在登录 cookie 不安全的糟糕过去很方便)
  • 我认为我的安全 cookie 被删除了,因为当显示的页面是 HTTP 时,Chrome cookie 浏览器不显示安全 cookie。饼干一直都在。

【讨论】:

  • '害怕。除非你有和我一样的心理问题。
猜你喜欢
  • 2011-10-08
  • 2016-12-31
  • 1970-01-01
  • 2018-10-19
  • 1970-01-01
  • 1970-01-01
  • 2011-08-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多