我创建的许多网站都将用户数据存储在会话中以便快速访问。问题是,如果管理员选择删除或禁用用户的帐户,只要他们有会话cookie,他们仍然在技术上“#34;登录。"
虽然有一些解决方法,例如在用户进行任何更改之前对用户进行检查或在登录的验证功能中添加数据库检查,但这些解决方案的效率低于我的预期。
所以我的问题是,有没有办法根据存储在所述会话中的数据,例如用户ID,从另一个用户关闭用户的会话?如果没有,何时在没有数据库验证的情况下在内部使用会话数据会被认为是不安全的?
我应该注意这个问题是在假设我将使用内置的$ _SESSION变量而不是某种自定义数据库实现的情况下提出的,因为数据库会话很容易被追踪。
我试图避免使用数据库,因为在本地服务器上保留会话数据远比每次我想访问会话数据时添加连接到外部数据库的延迟更有效。
答案 0 :(得分:1)
您是否尝试过session_destroy
?
答案 1 :(得分:1)
尝试使用以下功能来实现您的目标:
获取所有会话:$_SESSION List in PHP
答案 2 :(得分:0)
您可以在流程结束时使用session_destroy
,但此外:
为了完全终止会话,比如要将用户注销,还必须取消会话ID [和],然后必须删除会话cookie。
作为旁注:关于PHP文档的一个“好”的事情是你绝对喜欢,保证笑。
答案 3 :(得分:0)
你不能在别人的计算机上销毁会话......如果你真的想这样做,你应该检查每个页面,如果该帐户仍然可用..或其他一些解决方法......