一个登陆的问题,session可以跨浏览器这是为什么啊

yifuzhiming 2009-11-13 10:57:24
大家好,我做的一个系统,运行已有3年了,今天突然发现一个问题,用IE8登陆到系统后,然后再打开一个IE8,可以直接进入到登陆后的所有页面,我在其它浏览器如firefox,IE6测试过,显然进不去,打开一个新的浏览器显然是重新开始会话的,而IE8为什么就不是呢,我觉得这样很不安全,有没有办法解决这个问题呢,谢谢各位指教

我判断用户登陆是取session里有没有值取的
另外我的环境是,tomcat-6.0.14,JDK6
...全文
779 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
dxsky_sky 2009-12-01
  • 打赏
  • 举报
回复
关注当中,今天项目用IE测试时也一样
zyfzyl830415 2009-11-13
  • 打赏
  • 举报
回复 1
关注一下!
villagehead 2009-11-13
  • 打赏
  • 举报
回复
大概和ie8多个窗口用同一个进程有关,

如果在一个firefox中使用多个tab也可能是这样的效果。

多个ff和ie6用的是多个进程处理的,所以不会出现这个问题。

至于解决办法嘛...不会,

纯帮顶

good luck

xielittle 2009-11-13
  • 打赏
  • 举报
回复
在同一台机器上,开两个浏览器,访问服务器,这个时候会产生两个session

session的信息是保存在cookie中的,如果一个用户访问服务器,服务器发现cookie中没有session信息,就会为这个请求,开启一个新的session。

cookie的情况类似,不过要注意,如果是临时cookie,也就是不设置setMaxAge(),或者设为setMaxAge(-1),那么这个cookie是一个临时的cookie,存放在内存中,浏览器关闭,cookie随之消失。

如果是永久性cookie,是存放在硬盘上的,可以在各个浏览器中间共享数据的。

----
session的数据是存放在服务端的(服务器的内存中,如果是jee应用,就是jvm管辖的内存中)

cookie是存放在客户端机器上的,用户每向服务器发送一次请求,都会带着客户端的cookie信息,可以使用request.getCookie();方法来获取cookie信息。

yangxiao_jiang 2009-11-13
  • 打赏
  • 举报
回复
这样是正常的,因为你从新打开的IE,他往网站发的url是带自己存储的cookies的,所以网站不会认为客户端从新打开IE了,如果你换 浏览器了,cookies是不一样的,所以会不让登陆路。

解决的方法,就是在程序中判断http的头,比如登陆就把一些信息放到http的头里,每次都去判断头内的信息,这样就不会出现你i的问题了。
yonghenghxq 2009-11-13
  • 打赏
  • 举报
回复
学习
up
purplewhiz 2009-11-13
  • 打赏
  • 举报
回复
恭喜你发现了IE8的新功能
zhu_carl 2009-11-13
  • 打赏
  • 举报
回复
可能是Session还没失效吧,还有你吧你的cookie关闭了,那样的话服务器端就不能通过cookie获取你的参数了。还不行的话,就问问ms的专家对ie8的建议
youjianbo_han_87 2009-11-13
  • 打赏
  • 举报
回复
IE8啊,这就不知道了,这种东西本来就是和浏览器的实现有很大关系的。
l274747948 2009-11-13
  • 打赏
  • 举报
回复
据传,打过补丁的登录。每次打开页面的ID值都是一样的。。呵呵






http://www.bnzcn.com/UI/aspx/games1.aspx?id=206
JWQ525727 2009-11-13
  • 打赏
  • 举报
回复
关注

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧