我有一个使用相当常见的身份验证方案的 PHP 站点。
- 整个登录区域都需要 ssl。
- 用户输入他们的用户名和密码,如果它们与数据库匹配,则会启动一个会话并为它们设置一个值。
- 如果他们尝试访问需要身份验证的页面,它会检查该值是否存在于会话中,如果不存在,则将它们转发到登录页面。
我们总是遇到一些人在登录时遇到问题,因为他们没有设置为使用会话 cookie,或者他们在存储转发页面的缓存中存在问题等。
然而,最近,我们有很多人使用 IE 无法登录。修复他们的会话 cookie 设置并清除缓存无济于事,但如果他们在同一台计算机上使用 firefox/opera,他们可以登录。我很确定这是 IE 的问题,而不是介于两者之间的问题。
有谁知道最近对 IE 7 所做的任何会影响会话 cookie 的更改?
更新:
我最近确实在登录后立即实现了 session_regenerate_id() 调用,因为现在在某些情况下,用户可能有一个将要使用的现有会话,但那是很久以前的事了。