我有一个登录的PHP站点。一旦此人登录(使用基于文件的标准会话),该人可以单击注销页面,该页面将注销他。
问题是 - 访客通常不会这样做。他们只是关闭网络浏览器。
但是,下一个人可以来,打开浏览器,然后直接进入第一人称的登录区域。
似乎这将是一个巨大的安全漏洞:)在共享用户环境(办公室、网吧等)中
我需要知道如何通过关闭窗口来"注销"此人。我知道
'session.cookie_lifetime'
变量设置为 0。
必须有一些解决方案。任何帮助将不胜感激。
PHP 无法(孤立地)知道客户端何时关闭,因为那是客户端事件,而不是服务器事件。但是,您可以使用客户端上的JS将AJAX返回到服务器,以使其知道会话已关闭,使用window.unload
事件(链接)。
您可能还想查看此答案,它解释了会话清理中的潜在漏洞(不确定这是否仍然适用于更新的 PHP 版本)以及您可能还需要调整的session.gc_maxlifetime。