我猜测答案是否定的,但我正在尝试解决这种潜在的安全方案:
用户A 通过会话1登录
用户B 获取用户A 的密码并登录会话2
用户A 意识到他们的帐户会以某种方式受到损害并更改其密码。
在密码更改时,我希望它也能将用户B记录下来。换句话说,我想用$_SESSION['userid'] == 123
注销所有用户。
我认为没有办法在PHP中执行此操作但是没有为所有用户清除所有SESSIONS,但我想仔细检查。
答案 0 :(得分:2)
这是完全可能的。使用标准的基于文件的会话存储,您所要做的就是找到存储会话的目录,迭代每个文件,检查它并清除它是否是该用户的会话。最好的方法可能是将session_id()
与会话文件的文件名一起使用,然后使用session_start()
,然后使用测试,然后使用session_destroy()
(如果它是罪魁祸首会话)。这非常低效,但是可行(特别是因为希望这不是你一直做的事情)。
如果切换到数据库支持的会话存储,则可以通过常规SQL查询更轻松地查找和清除特定用户的所有会话。