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