会话标示未更新解决方案

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());
    }
}  

原文地址:http://blog.51cto.com/116833/2113410

时间: 2024-08-29 15:44:15

会话标示未更新解决方案的相关文章

java或者jsp中修复会话标识未更新漏洞

用IBM Rational AppScan扫描该漏洞部分描述: [1 / 2] 会话标识未更新 严重性: 高 测试类型: 应用程序 有漏洞的URL: *** 修复任务: 不要接受外部创建的会话标识. 会话标识未更新 应用程序 WASC 威胁分类 授权类型:会话定置 http://www.webappsec.org/projects/threat/classes/session_fixation.shtml CVE 引用 不适用 安全风险 可能会窃取或操纵客户会话和cookie,它们可能用于模仿合

WEB安全实战(七)会话标识未更新

序 上一篇文章中,我们讨论了关于"浏览器记住用户名和密码"的问题,至于这篇文章嘛,我想谈谈关于"会话标识"的漏洞.而且,这篇文章也是"Web安全实战"系列的最后一篇.为什么要拿到最后来说呢,其实,是之前一直困扰我的问题,这个问题曾一顿让我抓狂,n(n=3~5)多天一直没有解决,当时也是搜遍了各大网站,各大论坛,均未找到合适的解决方案.其中的过程就不再废话了,转到正题. 问题 先介绍一下问题是如何发现的,当然,这个不是我发现的,是我们测试部的童鞋发

解决shiro会话标识未更新问题

要解决会话标识未更新的安全问题,就需要在做登录验证时生成新的session,所以需要先将原来的session失效. 一般的解决方法如下: public void login(HttpServletRequest request, ...){ // 让旧session失效 request.getSession(true).invalidate(); //登录验证 } 但是,如果使用了shiro框架,这样做会报错:...Session already invalidated.原因是shiro对Htt

会话标识未更新

会话标识未更新 可能会窃取或操纵客户会话和 cookie,它们可能用于模仿合法用户,从而使黑客能够以该用户身份查看或变更用户记录以及执行事务 可能原因Web 应用程序编程或配置不安全技术描述 在认证用户或者以其他方式建立新用户会话时,如果不使任何现有会话标识失效,攻击者就有机会窃取已认证的会话.通常在以下情况下会观察到这样的场景: [1] Web 应用程序在没有首先废除现有会话的情况下认证用户,也就是说,继续使用已与用户关联的会话 [2] 攻击者能够强制对用户使用已知会话标识,这样一旦用户进行认

会话标识未更新(AppScan扫描结果)

最近工作要求解决下web的项目的漏洞问题,扫描漏洞是用的AppScan工具,其中此篇文章是关于会话标识未更新问题的.下面就把这块东西分享出来. 原创文章,转载请注明 -----------------------------------------正题------------------------- 测试类型:应用程序级别测试 威胁分类:会话定置 原因:Web 应用程序编程或配置不安全 安全性风险:可能会窃取或操纵客户会话和cookie,它们可能用于模仿合法用户,从而使黑客能够以该用户身份查看

JENKINS 打包 jar未更新版本

使用jenkins+maven+svn构建持续集成 maven快照库中程序已经更新.但是jenkins打包未更新jar至最新. 原因是:jenkins调用的maven的配置文件 maven默认情况下:更新本地仓库机制:每日更新一次.如需要更改实时检查.需要修改maven配置: settings中增加: <releases> <enabled>true</enabled> <updatePolicy>always</updatePolicy> &l

关于cocos2dx客户端程序的自动更新解决方案

转载请注明出处:帘卷西风的专栏(http://blog.csdn.net/ljxfblog) 随着手机游戏的不断发展,游戏包也越来越大,手机网络游戏已经超过100M了,对于玩家来说,如果每次更新都要重新下载,那简直是灾难.而且如果上IOS平台,每次重新发包都要审核,劳神费力.所以当前的主流手游都开始提供自动更新的功能,在不改动C++代码的前提下,使用lua或者js进行业务逻辑开发,然后自动更新脚本和资源,方便玩家也方便研发者. 以前做端游的时候,自动更新是一个大工程,不仅要能更新资源和脚本,还要

解决前端文件修改后浏览器页面未更新的问题

前端开发技巧:解决前端文件修改后页面未更新的问题.建议使用chrome, 1. 按F12打开控制台,点击右上角设置图标 2. 关闭浏览器缓存 3.日后修改前端文件后,注意观察eclipse下方写入和编译是否执行(有进度条),若写入和编译完成,按F5刷新页面即可体现修改效果.

【Spark】SparkStreaming-流处理-规则动态更新-解决方案

SparkStreaming-流处理-规则动态更新-解决方案 image2017-10-27_11-10-53.png (1067×738) elasticsearch-head Elasticsearch-sql client spark streaming reload_百度搜索 基于spark streaming的网管系统告警过滤算法的设计与实现 - 其它论文 - 道客巴巴 scala - Spark Streaming into HBase with filtering logic -