关于多个浏览器进程间共享session引发的安全漏洞思考

    早上在为项目的安全框架做选型,目前选择和测试的是Apache Shiro,以此为基础做web application的应用测试,无意中,发现了可能大家早已知晓的问题。

    1.打开两个同类型的浏览器,(我测试过IE6/7/8、Chorme、Firefox),分别为A、B
    2.我在A中登录应用,然后直接关闭。
    3.我在B中直接通过URL进入应用,这时应用的授权状态和A登录时的状态是一样的,也就是说两个浏览器之间共享了session,A虽然关闭了,但session状态保留到了B中。
   
    起初,我以为是我的框架配置和设计上的失误,但经过测试不是这样,那么我想,这个安全问题漏洞(暂且称为漏洞吧)会造成大的麻烦。
    打个比方,我事先可以打开一个浏览器,再打开一些无关紧要的网站迷惑用户。然后以当前浏览器需要保留网页或者应用的需要为由不能关闭,骗取用户打开新的浏览器登录他的应用。
    高潮来了,如果用户粗心,没有通过注销的方式退出应用,而是直接关闭了浏览器。在用户走后,我可以不费吹灰之力,在已开打的浏览器中,打开用户的应用URL,不用什么破解之道,就可获得用户的应用权限,然后为所欲为。
    我的方式还算是直接笨拙的,如果利用了两个浏览器进程间共享的事实,获取用户应用权限,那么,用户造成的损失算谁的?怪用户安全意识薄弱,退出不用注销吗?这好比在动物园里虽然挂着猛兽危险的告示,而没有安装必要的防护装置一样,出事以后,是不是怪人们没有看告示,而动物园没有反省自己为什么不加防护拦做基础的防护。
    我说的不是很流畅,但我还是觉得这是个问题,您觉得呢?欢迎大家来讨论一下这个问题。

猜你喜欢

转载自yoyayoyayoya.iteye.com/blog/1472413