Bug:同一浏览器的不同用户,提交内容时的处理

小权 发布于 2010/08/19 12:11
阅读 810
收藏 3

有这样一个场景:

“同一个浏览器,登陆了用户A,到某提交处,然后再登录用户B,此时,用户A提交内容,这个时候更新了用户B的内容。”

A用户的页面在B用户登录后,就与服务器无关了,此时如果A页面提交内容,获取的数据,必然是B用户的了。

我想到的一个办法是在页面提交处保存sessionID,这样每次提交时先判断服务器上的sessionID是否和页面里面的一致。

但是这个方法也很容易被hack,通过firebug等插件,将sessionID修改了,也就没辙了。

不知大家对此问题的解决有何好办法?

 

加载中
0
小权
小权

测试了一下oschina,也会有相应的问题!

我先登录一个帐户A,到修改个人信息处,填写了部分内容,然后在同一个浏览器登录另一个用户B,这个时候我提交帐户A所在的修改和人信息页面,更新了帐户B的个人信息!

0
封心
封心

你A用户在线时怎么登陆B用户?

0
小权
小权

引用来自#3楼“封心”的帖子

你A用户在线时怎么登陆B用户?

打开另一个Tab,退出,登录!

0
李永波
李永波

引用来自#4楼“小权”的帖子

引用来自#3楼“封心”的帖子

你A用户在线时怎么登陆B用户?

打开另一个Tab,退出,登录!

 你不是退出  A了吗

0
b
brain

此问题我也遇到了,纠结中呀!!

0
G.
G.

引用来自#4楼“小权”的帖子

引用来自#3楼“封心”的帖子

你A用户在线时怎么登陆B用户?

打开另一个Tab,退出,登录!

"退出" 这是关键.

好像是你在之前问了一个浏览器登录多账号的问题吧.

0
nile
nile

A推出之后销毁session。你用的什么server?

0
V
V

测试了一下oschina,也会有相应的问题!

我先登录一个帐户A,到修改个人信息处,填写了部分内容,然后在同一个浏览器登录另一个用户B,这个时候我提交帐户A所在的修改和人信息页面,更新了帐户B的个人信息!

试了不会啊,你要退出服务端该 sessionID就没了,自然就不会出现类似情况,出现这样的问题可能楼主你的过滤器没设计好!

0
小权
小权

可能没有表述清楚!

1、同一个浏览器,先让A用户在A Tab登录,然后打开B Tab,此时A Tab 和 B Tab都是A用户的登录信息吧,A用户到更改个人信息页面,修改某项详细,不提交,等待第三步提交。

2、此时在B Tab里面退出已登录的用户A,而登录用户B。

3、在A Tab 提交 第一步修改而没有提交的内容。

4、A Tab更改的内容变成B用户的了。

0
北落
北落

用Hibernate吧

返回顶部
顶部