我在一个域(虚拟主机)中有多个网站:
website.com/site1
,website.com/site2
等
在每个网站上都有一个身份验证,可以将username
保存在Session
中。
问题是:
如果我在site1
,并且,让我们说,Alex从我的浏览器加入site2
,则site1会认为我是Alex。如果我做某事,亚历克斯将写在数据库中。
一个解决方案是检查每个操作的Session
和username
是否相同。
是否有使用相同$_SESSION['name']
变量为site1
和site2
设置不同$_SESSION['name']
的解决方案?
答案 0 :(得分:0)
我有一个懒惰的解决方案,如果它可以为你工作。
在
当您启动会话时,这意味着您执行某些功能,然后将其存储在数据库中,如
//SQL things and finally
$_SESSION['username'] = $username;
你可以这样做
$_SESSION['site1-username'] = $username;
同样在其他网站
$_SESSION['site2-username'] = $username;
答案 1 :(得分:0)
找到了更好的解决方案:
每隔5秒,JS就会向服务器发送用户名。服务器检查它是否等于Session。如果没有,则要求用户进行身份验证。