【发布时间】:2021-05-16 01:22:57
【问题描述】:
我正在处理一个几个月来一直在处理的问题,因为没有任何迹象表明问题到底是什么。
基本上,我的 PHP 会话正在随机死亡(或者看起来如此)。我建立了一个相当简单的用户认证系统。我将用户的电子邮件存储在 $_SESSION['email'] 中,并将他们的哈希密码存储在 $_SESSION['hashed_password'] 中。我正在运行 nginx 1.14 和 PHP 7.4。我将会话生存期设置为 150 秒(这不是问题,会话在登录后 1 分钟内死亡)。我什至通过更改 session.save_path 将会话数据目录更改为自定义文件夹。
基本上,我登录到我的系统并开始在页面之间随机点击。 15-60 秒后,我被随机踢出系统。它出现的页面也似乎是随机的。从日志记录变量中,我看到 $_SESSION['email'] 和 $_SESSION['hashed_password'] 突然为空(我显然已经编写了一个响应,将用户发送回登录页面)。我没有在任何地方调用 session_destroy() 。触发会话死亡所需的点击量是不可预测的。它可以立即发生,也可能需要一些时间。
我意识到我没有提供很多信息,但这确实是我必须继续进行的全部内容。我已经阅读并重新阅读了我的用户类,并且没有任何地方会随机触发会话被破坏。我什至设置了 $_SESSION['random_int'] 以确保不是我将用户注销,并且在发生这种行为时它也是空的。
感谢所有帮助。
【问题讨论】:
-
是的,但我在下面发布了答案(似乎是相同的答案)。谢谢。