日期:2014-05-19  浏览次数:20795 次

会话标识未更新
一个很纠结的问题:
我的系统在做AppScan安全扫描时,爆出一个高危漏洞:会话标识未更新。提供的解决办法是,在用户登录时始终使用新的会话。
我仔细查看了我的系统。原来在用户进入登录页面,但还未登录时,就已经产生了一个session,用户输入信息,登录以后,session的id不会改变,也就是说还是以前的那个session(事实上session也确实不会改变,因为没有建立新session,原来的session也没有被销毁)。
后来我做了如下改变。在我的登录servlet里面将用户刚进入登录页面的那个session用invalidate()销毁掉,在用户信息匹配成功后,再建立一个新session,将用户信息放到session中去。
本来以为这种做法应该可以解决问题了,但是再扫描发现问题还存在。再一查看,发现新建立的session与原来被销毁的session的id居然还是一样的。真是搞不懂了!
有没有哪位大侠遇到过这种问题,是怎么解决的,指点一下!!


------解决方案--------------------
在我的登录servlet里面将用户刚进入登录页面的那个session用invalidate()销毁掉,在用户信息匹配成功后,再建立一个新session,将用户信息放到session中去
为什么要用户信息匹配成功后再新建session,那匹配不成功怎么处理?有处理吗?
你前台是jsp吗,session用你处理吗?
------解决方案--------------------
request.getSession().invalidate();//清空session
if (request.getCookies()!=null) {  
Cookie cookie = request.getCookies()[0];// 获取cookie  
cookie.setMaxAge(0);// 让cookie过期 
}
这样就行了