我在我的应用程序中使用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添加到会话中感谢您的提示和帮助
答案 0 :(得分:1)
理想情况下,您可能希望自己创建自定义功能。 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网站。我也在那个网络服务器上我在apache配置中运行一个特殊代码,它不接受vpn连接,以便那些认为可以隐藏在vpn后面的黑客,他们甚至无法访问服务器(那里有网络浏览器时间) LOL)