会话标示未更新解决方案
2018-05-07 10:03
369 查看
JSF项目,用appscan检测,报“会话标示未更新”漏洞,漏洞详情:用户在登陆应用程序前后,其会话标识一样,未进行更新,从而可以窃取或操作客户会话和Cookie,进行查看、变更用户信息及执行事务等操作。
推理: 测试结果似乎指示存在脆弱性,因为“原始请求”和“响应”中的会话标识相同。这些标志应该已在响应中更新。
JSF页面在打开时,就会生成一个sessionid,登录后的sessionid未发生变化。
解决方案:
后台登陆方法,加入强行销毁session的代码,并重新生成新session。
代码转自:http://huangqiqing123.iteye.com/blog/2031455
/** * 重置sessionid,原session中的数据自动转存到新session中 * @param request */ public static void reGenerateSessionId(HttpServletRequest request){ HttpSession session = request.getSession(); //首先将原session中的数据转移至一临时map中 Map<String,Object> tempMap = new HashMap(); Enumeration<String> sessionNames = session.getAttributeNames(); while(sessionNames.hasMoreElements()){ String sessionName = sessionNames.nextElement(); tempMap.put(sessionName, session.getAttribute(sessionName)); } //注销原session,为的是重置sessionId session.invalidate(); //将临时map中的数据转移至新session session = request.getSession(); for(Map.Entry<String, Object> entry : tempMap.entrySet()){ session.setAttribute(entry.getKey(), entry.getValue()); } }
相关文章推荐
- 会话标示未更新问题
- jsp中会话id未更新的解决方案
- Ubuntu使用问题集及解决方案(不定期更新)
- 网络数据包获取问题及解决方案-------持续更新
- cocos2d 从v1更新到v2安装文件、工程模板时遇到 Permission Denied 的解决方案
- ViewPager中使用FragmentPagerAdapter.notifyDataSetChanged无法更新当前Fragment解决方案
- Windows xp 自动更新导致svchost.exe进程CPU占用率100%解决方案
- win10更新出错0x80070422的解决方案
- chrome浏览器更换favicon.ico后不更新缓存解决方案
- ulua热更新自定义服务器出现问题的解决方案
- web客户端增量更新数据解决方案
- Android SDK Manager国内无法更新的解决方案
- 使用VS2010时遇到的一些小问题的解决方案(从各处搜罗总结的,不定期更新,向原作者致敬)
- 记一些暂未找到解决方案的问题 -- 持续更新
- Bugly 多渠道热更新解决方案
- Android Crash Exception 解决方案(持续更新中)
- 关于cocos2dx客户端程序的自动更新解决方案
- kali 更新后出现乱码的解决方案
- 自动更新技术解决方案