2

我创建的许多网站都将用户数据存储在会话中以便快速访问。问题是,如果管理员选择删除或禁用用户的帐户,只要他们有会话 cookie,他们在技术上仍然是“登录”。

虽然有一些变通解决方案,例如在用户进行任何更改之前对用户进行数据库检查或在登录验证功能中添加数据库检查,但这些都没有我想要的效率。

所以我的问题是,有没有办法根据存储在所述会话中的数据(如用户 ID)从另一个用户关闭一个用户的会话?如果不是,什么时候在内部使用会话数据而不进行数据库验证会被认为是不安全的?

我应该注意到,这个问题是在假设我将使用内置的 $_SESSION 变量而不是某种自定义数据库实现的前提下提出的,因为数据库会话很容易追踪。

我试图避免使用数据库,因为在本地服务器上保存会话数据比每次我想访问会话数据时增加连接到外部数据库的延迟要高效得多。

4

4 回答 4

1

你试过session_destroy吗?

会话销毁

于 2013-02-21T15:45:23.473 回答
1

尝试使用以下实现您正在寻找的东西:

于 2013-02-21T16:12:38.043 回答
0

您可以session_destroy在流程结束时使用,但此外:

为了完全终止会话,例如注销用户,还必须取消设置会话 ID [并且] 然后必须删除会话 cookie。

作为旁注:关于 PHP 文档的一个“好”的事情是你绝对会笑。

于 2013-02-21T15:45:13.253 回答
0

你不能在别人他的电脑上破坏会话...... 如果您真的想这样做,您应该检查每个页面是否该帐户仍然可用..或其他一些解决方法..

于 2013-02-21T15:58:19.953 回答