关于jdonpetstore安全问题

05-12-21 yalongxiao
Banq大哥,为什么以任何用户登陆jdonpetstore以后,在同一个浏览器里输入:

http://www.jdon.com:8080/jpetstore/shop/editAccountForm.shtml?action=edit&username=j2ee

都可以更改用户j2ee的资料?

banq
2005-12-21 15:31
是一个小bug,只要将AccountServiceImp变成有态服务即可,第一次登陆正确即保留它的信息,以后修改只从这个保留信息获取ID,而不是每次由客户端指定。

现在已经改正,你再试验看看,欢迎提出意见,谢谢。

yalongxiao
2005-12-22 09:07
怎样使BEAN改变成有态服务?

要消除这个bug要改动哪些地方?

呵呵,我是新手来的,不介意我问吧?

banq
2005-12-22 10:50
修改AccountServiceImp代码,原来其继承Poolable是一个无态,现在改为继承Stateful,作为有态,即可,当然,要在AccountServiceImp中增加一个Account字段,保存着这个用户的信息,因为每个用户对应唯一一个AccountServiceImp,所以下次这个用户又访问AccountServiceImp是,还是之前的AccountServiceImp,这样它就只能取得自己第一次登陆时通过的那个Account对象。

这样在修改时,首先验证它要修改的Account是否和AccountServiceImp中保存的Account一致,只有一致才可以修改。

猜你喜欢