javaeye.com 目前存在的bug

今天测试部门发现系统存在的bug,现在发现iteye.com 也存在同样的bug。

复制已经登录的url在session未失效时间内,在同台机器上 同浏览器打开新标签能登进去的问题。

一个系统 目前默认用的cookie传递session 方式,在浏览器中 登录后,复制url地址, 在session失效前,打开同样的浏览器,新建窗口,粘贴 url 也登录进去了,这个怎么控制使后者需要登录呢?(cookie里有了session 有了用户咋控制)

另外本人也试了 url重写的方式传递session 但是url里有;jsessionid= 。。。。。,也是一样能进,更不安全了!

如果用隐藏域的话 ,用post方式 url里肯定没有那些参数,但是 现在系统较复杂 改起来太多了,大家有好办法么?

刚刚试了 貌似 iteye.com 也存在这个问题啊! 呵呵

[quote]恩,所以我觉得最好能够不用cookie机制,因为cookie的话 有可以被保存的机制;最好使用url重写 能把jsessionid隐藏掉就好了。[/quote]

jsessionid不好隐藏的。

[quote]倒是想过post方式,但是那个需要加隐藏的input表单 太麻烦了。[/quote]

这个倒是可以试试。

[url]http://www.iteye.com/topic/556000[/url]

[quote]一个系统 目前默认用的cookie传递session 方式,在浏览器中 登录后,复制url地址, 在session失效前,打开同样的浏览器,新建窗口,粘贴 url 也登录进去了,这个怎么控制使后者需要登录呢?(cookie里有了session 有了用户咋控制)[/quote]

1 用的什么浏览器?

2 你是否是说: 在浏览器中 登录后,复制url地址, [color=red]然后关掉浏览器[/color],在打开一个新浏览器,新建窗口,粘贴 url 也登录进去了

是这个意思吗?

可以看refer 是不是空。

但是这是是bug吗?同台机器同个浏览器,而且未失效这还不安全???

[quote]是的,我用ie 6/7 ,火狐 都试过了。

昨天还专门试过webqq的 ,它 防止了这种现象存在。就是说 复制url 不管是在现在打开的浏览器中 新开标签 或者关掉浏览器 在开同样浏览器粘贴url 一样会让你重新登录。[/quote]

可以看看这篇帖子。

对你的回答我感觉有点奇怪。

1 首先firefox的确会有这种现象,通过试验发现,firefox会把cookie保存到磁盘(上面的帖子),所以你关掉firefox后,下一次再打开,cookie还在的,cookie里面保存的服务器端得session也还在,只要你服务器端得session没有过期(tomcat默认是30分钟),用户登录就是保存了的。

2 IE就不一样,IE默认是把cookie保存在内存里的,关闭了IE后cookie就不存在了,客户端的session就丢失了,下一次你再打开浏览器就应该重新登录。 是否是做过特殊的配置,IE关闭后cookie仍然保存在机器上。你可以查看一下。

关于session的讨论帖,涉及细节。

http://www.iteye.com/topic/585018

[quote]你说的对 ie里确实是session只在一个窗口有效,但是火狐的话有什么办法么?[/quote]

需要修改浏览器配置,不建议这样做

在firefox里输入about:config,回车,找到

browser.sessionstore.max_windows_undo

修改成0试试看吧,我没有试验过。

看这个链接
http://kb.mozillazine.org/Browser.sessionstore.max_tabs_undo

[quote]有没有好的办法 在服务器端做呢 改客户端不是良策啊。[/quote]

http是无状态的协议,它只知道你是否携带了session信息,并不关心发送这一消息的客户端。