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

解决方案 »

  1.   

    在我的登录servlet里面将用户刚进入登录页面的那个session用invalidate()销毁掉,在用户信息匹配成功后,再建立一个新session,将用户信息放到session中去
    为什么要用户信息匹配成功后再新建session,那匹配不成功怎么处理?有处理吗?
    你前台是jsp吗,session用你处理吗?
      

  2.   

       我试过了新建的sessionid 跟原来的session 是一样的 这样也不行啊
      

  3.   

    request.getSession().invalidate();//清空session
    if (request.getCookies()!=null) {    
    Cookie cookie = request.getCookies()[0];// 获取cookie    
    cookie.setMaxAge(0);// 让cookie过期 
    }
    这样就行了