最近对 IE 会话 cookie 有何更改?
-
21-08-2019 - |
题
我有一个 PHP 站点,它使用相当常见的身份验证方案。
- 整个登录区域都需要ssl。
- 用户输入他们的用户名和密码,如果它们与数据库匹配,则会启动会话并为其设置值。
- 如果他们尝试访问需要身份验证的页面,它会检查会话中是否存在该值,如果不存在,则将其转发到登录页面。
我们总是遇到一些登录遇到问题的人,因为他们没有设置使用会话 cookie,或者他们在存储转发页面的缓存中遇到问题等。
然而最近,我们有很多人用IE无法登录。修复会话 cookie 设置并清除缓存并没有帮助,但如果他们在同一台计算机上使用 firefox/opera,则可以登录。我很确定这是 IE 的问题,而不是中间的任何问题。
有谁知道 IE 7 最近的任何更改会影响会话 cookie?
更新:
我最近确实在登录后立即实现了 session_regenerate_id() 调用,因为现在在某些情况下用户可能有一个将要使用的现有会话,但那是很久以前的事了。
解决方案
我的第一步是找到一个可以使用 Firefox 而不是 IE 登录的用户,然后对两者运行 Fiddler,以查看登录过程的 HTTP 请求/响应对的差异。这至少应该让您更好地了解该去哪里寻找。
其他提示
如果 IE 的安全设置被调高(这在企业环境中尤其常见),或者您登录的页面位于框架或 iframe 中,则可能导致 cookie 无法保存。如果是这种情况,您所需要做的就是设置 P3P 策略 HTTP 标头。 这是我能找到的关于如何实现它们的最佳描述。
我什么也没听到。不过,这正是我在所有公共项目中改用无 cookie 会话的原因。我相信 ASP.Net 已内置此功能,但我更喜欢使用我自己的实现。在页面之间传递查询字符串 sessionid 参数并将其绑定到数据库记录或其他数据存储要可靠得多。
不隶属于 StackOverflow