0

我们在我们的应用程序中发现了一个问题,即 Mac 上的 Safari 从已注销的会话中随机重新创建登录 cookie。

我在这里有一个带有这种行为的提琴手档案。请注意,已从中删除了一些内容以使其更易于获取,但没有删除任何设置 cookie 或任何内容的内容 - 仅重复请求 3-8。

我会告诉你运行顺序

  • 请求 1:用户通过调用 /logout.aspx 注销 - Set-Cookie 返回设置 cookie 到期日期为 1999
  • 请求 2-8:用户刷新登录页面,向 root 或 /res/en-US/s.js 发送调用 - 没有 cookie 发送到服务器或接收回,并且访问被拒绝。我已经从日志中删除了很多这种性质的请求,因为它们很无聊
  • 请求 9:请求 /res/en-US/s.js - Hv3 身份验证 cookie 神秘地再次出现!笏。没有设置饼干!WTFF!
  • 请求 10+:现在 cookie 重新出现,站点再次登录用户

在 Safari 中检查时,cookie 看起来像

<dict>
    <key>Created</key>
    <real>259603523.26834899</real>
    <key>Domain</key>
    <string>.mysite.dev</string>
    <key>Expires</key>
    <date>2010-03-24T16:05:22Z</date>
    <key>HttpOnly</key>
    <string>TRUE</string>
    <key>Name</key>
    <string>.Hv3</string>
    <key>Path</key>
    <string>/</string>
</dict>

需要注意的一件事是,在 Safari 中,cookie 域是 .mysite.dev 而不是 mysite.dev(这是 web.config 中指定的 cookie 域) - 但是,鉴于请求 2-8 中拒绝访问,它看起来像cookie 已过期 OK。如果您在 2-8 期间查看浏览器中的 cookie 列表,则 .Hv3 cookie 不存在。

这是我们的错误还是 Safari 的?我能做些什么来阻止它的发生?

4

1 回答 1

1

某些浏览器的 cookie 处理存在已知问题。

请参阅以下论文: Cookie 后的 iSEC 清理

另请参阅Apple.com 上关于重新出现 cookie 的讨论。

于 2009-04-03T14:12:55.970 回答