加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 销毁特定用户的所有会话

发布时间:2020-12-13 16:09:21 所属栏目:PHP教程 来源:网络整理
导读:我正在使用Codeigniter 3作为我的应用程序,为了更高的安全性,我想为用户提供销毁他所有会话的选项. 为什么?因为用户在不同设备上登录时可能有多个活动会话.如果一个设备或帐户被劫持,则用户应该有可能销毁其所有活动会话,并且被劫持的帐户/设备被CI应用程序
我正在使用Codeigniter 3作为我的应用程序,为了更高的安全性,我想为用户提供销毁他所有会话的选项.

为什么?因为用户在不同设备上登录时可能有多个活动会话.如果一个设备或帐户被劫持,则用户应该有可能销毁其所有活动会话,并且被劫持的帐户/设备被CI应用程序强制注销.

使用Codeigniter和sess_time_to_update配置并不是那么容易.因为在特定时间之后,会话将使用新的会话ID重新生成.

Destroying a specific session in Code Igniter只是解决方案的一半,因为在会话重新生成时,用户ID列不会填充用户ID.

目标简短:
CI需要一个函数来根据用户ID查找所有会话,或者如何在sess_time_to_update config自动重新生成会话后将会话ID添加到会话中

感谢您的提示和帮助

解决方法

理想情况下,您可能希望自己创建自定义函数. codeignighter就像bootignrap,因为codeignighter是php,bootstrap是css.简单的PHP代码,是的,它在图书馆中有PHP功能很方便,但大多数php编码器无论如何都这样做.我个人不共享我的自定义函数名称,因为它存在安全风险.但是,将会话保持太长时间也存在安全风险.对于每个用户连接,$_SERVER数组中都有一个会话cookie.您需要做的是将这些cookie存储在db表中,然后将这些cookie条目移动到删除提示(这将是另一个表),然后使用Java调用命令(按时间间隔)以查看是否cookie在删除提示中,如果是这样它将通过命令取消设置cookie:

setcookie("PHPSESSID","",time()-3600,"/");
////then kick them out:  
session_destroy();
 header('Location: index.php');

 exit();

在我的一个系统上,我提出了一个不同的cookie系统,它基于连接和其他客户端变量.如果它没有看到从那里解析的任何检查(cookie,IP地址,客户端主机名和其他一些),它将添加不匹配到表的ip地址(用于管理员审计),然后添加该IP地址为防火墙中的拒绝IP地址,然后将其重定向到FBI网站.我也在那个web服务器上我在apache配置中运行一个特殊的代码,它不接受vpn连接,以便那些认为可以隐藏在vpn后面的黑客,他们甚至无法访问服务器(那里的Web浏览器超时.大声笑)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读