HTTP页面正在删除我的安全cookie

时间:2013-05-24 11:38:06

标签: security session cookies https session-cookies

我有一个混合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 Moved Permanently”会将用户重定向到从HTTPS到HTTP。

我的网站没有清除安全cookie。我知道浏览器不应该在用户查看HTTP站点时向我发送安全cookie,但我希望cookie在其生命周期内保持不变,如果用户再次在HTTPS页面上结束,则会发送cookie。 / p>

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

1 个答案:

答案 0 :(得分:2)

Welp,这很令人尴尬。这就是我的问题。

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