2 stone yw stone_yw 于 2017.05.20 12:14 提问

两个用户登录,session id问题

据我现在的知识来说,session是针对浏览器的,对于不同的浏览器,服务器会创建不同的sesionid。
我想问一下,如果是同一个浏览器,一开始是a用户登陆,这时服务器会创建一个sessionid(这里
会把sessionid存储到cookie中)。此时a用户退出,cookie中还是保留之前的sessionid。
那么如果用户b登录,那么按道理会从cookie中取出之前的那个sessionid,然后传给服务器,然后服务器端会识别这个sessionid,取出对应session的信息,那这样岂不是会造成:a用户存储在session中的信息,会被b用户看到。。。

各位大大,不知道我上述的描述有没有错误。。感觉应该对的。。但是实在想不通啊。。还求各位大大赐教~~~

有点尴尬了,发现自己没金币了。。。纯学术讨论。。谢谢了

7个回答

masstone
masstone   2017.05.20 12:55

今天有女朋友的去过520了,没有女朋友的假装自己去过520了,谁会来讨论啊!

showbo
showbo   Ds   Rxr 2017.05.20 14:31

此时a用户退出,cookie中还是保留之前的sessionid
你的退出指什么东西?
如果是关闭浏览器,sessionid的cookie是内存的,关闭浏览器会就会删除。
如果只是关闭标签页,没有关闭浏览器,对于标签浏览器来说cookie是继续有效的,如果a离开了没关闭浏览器b用这个浏览器继续查看网页就是a的信息

如果是点击链接请求服务器销毁了session,虽然cookie存在,但是服务器端session内容已经销毁也是获取不到的,之后重新登录系统读取用户系统初始化session才会有值。

stone_yw
stone_yw cookie设置持久化了。。直接保存为临时文件了,也就是说cookie中有sessionid信息。。
3 个月之前 回复
com_it
com_it   2017.05.20 12:54

每一个用户,服务器都会分配 不同的sessionId,并 保存 在 自己的 cookie中

stone_yw
stone_yw 这个知道啊。。。但是我说的是浏览器,应该是对于不同的浏览器分配不同的session吧
3 个月之前 回复
qq_18895659
qq_18895659   Rxr 2017.05.20 14:15

不同用户不同的sessionID就算相同的用户不同的时间登录也是不同的session,其实对于登录可以使用shiro来进行权限控制

stone_yw
stone_yw 我测试了一下。。比如都是用谷歌浏览器,a登录时,sessionid是100,然后a退出。。然后b登录登录,b会拿着刚才那个sessionid=100去的
3 个月之前 回复