聊聊Web应用的会话管理

http连接是无状态的,但web程序交互中经常又需要状态。所以目前流行的基本是Cookie,Session结合方式来管理,Cookie中会带一个会话标识,如果不用cookie,可能会将会话标识跟在地址栏后面。但也有不通过Session这样方式的,使用自定义的方式来维护状态。但有一点一定要注意,不能用递增的明码ID来做会话状态标识,危险性太大。下面举例说明。

 

前些时间,发现有个网站,是flash做的游戏,因为玩了游戏,有积分,积分呢可以抽奖,具体什么网站我就不透露了~~

 

于是,我就搞个程序玩,下了flash研究了下源码,配合firebug看看网络收发网络数据,惊奇的发现该网站维持用户会话是使用递增的ID,也就是说,我只要发个Cookie,带上userID,我就可以去提交积分了,连登录都不用登了。抽奖品也需要人品的,所以获不获奖是另外一码事,但写这样的程序还是有乐趣的~~

 

事后,我一想,如果是这样的话,那我岂不是可以伪造任何人的信息了么?因为Cookie可以用js来增删改的。

我随即验证了下,发现想法成立,然后我就再也不敢往下研究了。。。本来是娱乐玩,如果这样深入下去想搞破坏也不是难事。因为我可以遍历出所有用户的信息,然后,可以以这些用户的身份提交虚假信息。也就是说,我可以把中奖人的联系方式给改掉。提交成我的或者错误都有可能。但我不敢研究下去了。到此为止,这样下去,一是我品格不允许,二是可能会搞出事情来,毕竟我只是名普通的程序员,家有妻儿,我不要搞出什么事情来。。。

 

不知道是不是flash与后台交互时,这方面有什么障碍。我不太清楚网站方为何是用递增ID来维持会话的。

但不管怎样,请记住一点,千万不可用明码递增的标识来标识会话。太不安全,太危险了,后患无穷。至少也加个密是吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值