【发布时间】:2018-11-06 22:07:07
【问题描述】:
我对 Chrome 上的 cookie 到期日期有疑问。我使用 ColdFusion 设置了两个这样的 cookie:
<cfset thekey = generatesecretkey("DESEDE")>
<cfcookie name="cookie1" value="#Hash(userid&thekey,'SHA-256')#" httponly="true" >
<cfcookie name="cookie2" value="#thekey#" httponly="true" >
他们已经工作了一段时间。然而,在升级到 ColdFusion 10 并使用 Chrome 后,奇怪的事情开始发生。它只发生在 Chrome 浏览器上。其他浏览器没有这个问题:
设置这两个 cookie 后,它们的到期日期都结束于1969 年 12 月 31 日星期三晚上 7:00:11
这让我非常困惑。如您所见,我没有设置任何到期日期。所以默认是session only。它们应该在用户会话结束时过期。我的问题是这个日期是从哪里来的?是来自 ColdFusion 10 服务器还是 Chrome?我不知道为什么这个日期会出现在 Chrome 中 cookie 的 Expires 字段中。有了这个到期日期,cookie 就被认为已经过期并且无法使用。
【问题讨论】:
-
您是否尝试过使用 expires 属性设置到期日期?
-
@JackPilowsky 我没有,因为我希望它在会话中过期并且还想找出根本原因。 cfcookie 函数中 expire 参数的默认值应该是“仅会话”。由于它只发生在 Chrome 上,我怀疑它可能是 Chrome 错误。
-
尝试将其设置为仅会话。看看是否有效
-
您已经通过省略“expires”来仅使用会话。 “仅限会话”不是一个允许的值,只有:日期、天数、“现在”或“从不”。
-
遇到同样的问题。会话 cookie 是通过没有过期字段来设置的,但 Chrome 始终将过期时间显示为 1969-12-31T23:59:59.000Z。有更新吗?
标签: google-chrome cookies coldfusion coldfusion-10