会话或数据库访问权限,以检查用户是否已登录?

时间:2018-07-03 16:33:26

标签: php session mysqli

我使用php-sessions检查用户是否登录到我的应用程序。是否比仅将用户ID保留在会话中并对照数据库(如果用户已登录)进行检查来提高性能?

如果密码更改了,或者我想阻止/注销用户,更改数据库记录很容易,但是当它存在于会话中时,我可以这样做吗?怎么样?

2 个答案:

答案 0 :(得分:0)

  

我使用php-sessions检查用户是否登录到我的应用程序

我不确定到底是什么样子-听起来很恐怖。您可能已经破坏了会话安全模型,或者每次想查找登录者时都必须强制使用会话数据。当然,最好维护活动会话和用户标识符的列表,支持自定义会话处理程序(出于触发目的-不适用于通用存储基板),但您似乎暗示您没有这样做。

  

如果密码更改

不能在会话中保留用于验证会话身份的密码。

答案 1 :(得分:0)

您可以同时使用。

将会话变量用作第一次检查,以便您立即拒绝未设置会话变量的任何请求。这样可以节省对随机敲门请求进行昂贵的数据库检查。

但是,如果已设置,则仍然必须进行数据库检查,以查看用户的登录会话是否仍然有效。用户登录时,创建一个随机令牌并将其存储在会话变量和数据库中。处理新请求时,请检查会话变量是否与数据库中的变量匹配。如果管理员要强制用户注销,则只需使该数据库记录无效。

相关问题