IE 会话 Cookie 最近发生了任何更改?

Any recent changes to IE session cookies?

提问人:Eli 提问时间:6/30/2009 最后编辑:Eli 更新时间:6/30/2009 访问量:503

问:

我有一个使用相当通用的身份验证方案的 PHP 站点。

  • 整个登录区域都需要 ssl。
  • 用户输入他们的用户名和 pw,如果他们与 db 匹配,则启动会话并为他们设置一个值。
  • 如果他们尝试访问需要身份验证的页面,它会检查会话中是否存在该值,如果没有,则将其转发到登录页面。

我们总是会遇到一些人无法登录的问题,因为他们没有设置为使用会话 cookie,或者他们在缓存浏览转发页面等方面有问题。

然而,最近,我们有很多IE用户无法登录。修复他们的会话cookie设置和清除缓存没有帮助,但如果他们在同一台计算机上使用firefox / opera,他们可以登录。我很确定这是IE的问题,而不是介于两者之间的任何问题。

有谁知道 IE 7 最近对 IE 7 的任何更改会影响会话 cookie?

更新:

我最近确实在登录后立即实现了 session_regenerate_id() 调用,因为现在在某些情况下,用户可能有一个将要使用的现有会话,但那是很久以前的事了。

Internet-Explorer 会话 Cookie

评论

0赞 Jarett Millard 6/30/2009
您最近是否更改了服务器上或代码中的任何设置?如果您使用的是共享主机,有时他们也会在不告诉您的情况下更改内容。

答:

0赞 Spencer Ruport 6/30/2009 #1

我什么都没听到。不过,这正是我在所有公共项目中改用无 cookie 会话的原因。我相信 ASP.Net 内置了这一点,但我更喜欢使用我自己的实现。将查询字符串 sessionid 参数从一页传递到另一页,并将其绑定到数据库记录或其他数据存储要可靠得多。

评论

0赞 Jarett Millard 6/30/2009
我可以问一下,你用什么来代替?
0赞 Jarett Millard 6/30/2009
不过,这样做确实会损害安全性。会话 ID 应被视为明文密码,因为当会话处于活动状态时,它基本上就是这样。将它放在查询字符串中会将其保存在各种公共场所:缓存、代理服务器、浏览器历史记录、用户复制/粘贴到论坛的链接等。我宁愿一些用户因为自愿关闭 cookie 而无法使用我的应用程序,也不愿让一些用户的帐户受到损害。
0赞 Eli 6/30/2009
我也喜欢cookie登录。我倾向于保持相当干净的 URL,因为我讨厌将数据显示给临时用户或存储在我不想要的任何地方。虽然我同意,但当事情突然发生变化时,这真的很痛苦......
3赞 Dan Davies Brackett 6/30/2009 #2

我的第一步是找到一个可以使用 Firefox 而不是 IE 登录的用户,然后对两者运行 Fiddler,以查看登录过程的 HTTP 请求/响应对的差异。这至少应该让你更好地了解去哪里看。

1赞 Jarett Millard 6/30/2009 #3

如果 IE 的安全设置被调高(这在企业环境中很常见),或者您登录的页面位于框架或 iframe 中,则可能是阻止 cookie 保存的原因。如果是这种情况,您需要做的就是设置 P3P 策略 HTTP 标头。这是我能找到的关于如何实现它们的最佳描述。

评论

0赞 Eli 6/30/2009
嗯,可能就是这样,因为我们没有 p3p 标头。我会实现它,看看它是否有帮助。