我正在制作一个基于 php 的应用程序。当两个用户从同一浏览器中的不同选项卡登录时,他们可以访问彼此的页面。如何防止这种情况?
问问题
1474 次
4 回答
0
我看到有4个解决方案:
您可以尝试为该窗口(在本例中为选项卡)命名以使用 JavaScript 检测特殊窗口:
if(window.name==4711) {...}
使用带有 GET 参数而不是 cookie 的会话。
使用具有在该子域上运行的正常 cookie 的随机子域。
使用一个普通的 cookie,它被限制在一个“虚拟”目录中,使用 mod_rewrite 时该目录并不真正存在。基于此评论的想法。
于 2012-06-10T05:29:20.283 回答
0
使用$_SESSION
或$_COOKIE
存储在用户登录和更新数据库时创建的生成密钥,以便当用户更改页面时,您可以根据该生成的密钥访问他们的信息。此外,您可能需要创建一个简单function
的检查密钥而不是为您的页面使用另一个功能,如果它像一个菜单栏或登录框,将它包装在一个if statement
类似的
if(checkUser($_COOKIE['MYSID'])){
// User is logged in so show whatever
} else {
// Login box here
}
于 2012-06-10T05:32:54.097 回答
0
window.name
在打开浏览器选项卡时为每个用户使用属性或设置 cookie。
于 2012-06-10T05:47:19.283 回答
0
您的应用程序没有检查用户当前是否已登录,因此当用户输入凭据并登录时您必须首先执行设置会话变量
$_SESSION['logged_in'] = "true";
那么您必须在页面开头对索引页面进行如下修改
<?
if($_SESSION['logged_in']=='true'){
header('location:USERS_SPECIFIC_PAGE_AFTER_LOGIN.EXT')
}
else{
header('location:login_page.ext');
}
?>
于 2012-06-10T06:34:10.793 回答