我正在制作基于php的应用程序。当两个用户从不同选项卡中的同一浏览器登录时,他们可以访问彼此的页面。如何防止这种情况?
答案 0 :(得分:0)
我看到有4个解决方案:
您可以尝试为该窗口(在本例中为选项卡)提供一个名称,以便使用JavaScript检测特殊窗口:
if(window.name==4711) {...}
使用带有GET参数但不带cookie的会话。
使用包含在该子域上运行的普通Cookie的随机子域。
使用普通的cookie,该cookie仅限于使用mod_rewrite时并不存在的“虚拟”目录。 Idea based on this comment
答案 1 :(得分:0)
使用$_SESSION
或$_COOKIE
存储在用户登录并更新数据库时创建的生成密钥,以便在用户更改页面时,您可以根据生成的密钥访问其信息。您还需要创建一个简单的function
来检查密钥,而不是使用页面的其他功能,如果它像菜单栏或登录框一样,将其包含在if statement
之内
if(checkUser($_COOKIE['MYSID'])){
// User is logged in so show whatever
} else {
// Login box here
}
答案 2 :(得分:0)
使用window.name
属性或在打开浏览器标签页时为每个用户设置Cookie。
答案 3 :(得分:0)
您的应用程序未检查用户当前是否已登录,因此您必须执行此操作 首先,当用户输入凭证并登录时设置会话变量
$_SESSION['logged_in'] = "true";
然后你必须对你的索引页进行一些修改,如下页
所述<?
if($_SESSION['logged_in']=='true'){
header('location:USERS_SPECIFIC_PAGE_AFTER_LOGIN.EXT')
}
else{
header('location:login_page.ext');
}
?>