在浏览器关闭时注销

时间:2013-11-14 02:17:56

标签: php session session-cookies

我有一个登录的PHP站点。一旦此人登录(使用基于标准文件的会话),该人员可以单击将其注销的注销页面。

问题是 - 访客通常不这样做。他们只是关闭Web浏览器。

然而,下一个人可以来,打开浏览器,并在第一人的登录区域。

在共享的用户环境(办公室,网吧等)中,这似乎是一个巨大的安全漏洞。

我需要知道如何通过关闭窗口来“注销”此人。

我知道
 'session.cookie_lifetime' 

变量设置为0。

必须有一些解决方案。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

PHP无法知道(孤立地)客户端何时关闭,因为这是客户端事件,而不是服务器事件。但是,您可以使用window.unload事件(link)在客户端上使用JS返回服务器,让它知道会话已关闭。

您可能还想查看this answer,它解释了会话清理中的潜在漏洞(不确定是否仍然适用于更新的PHP版本)以及session.gc_maxlifetime,您可能还需要进行调整。