安全技术研究-Broken Session Management(JAVA代码)

2022年12月05日22:35:08 科技 1467

漏洞代码示例(JAVA servlets)

安全技术研究-Broken Session Management(JAVA代码) - 天天要闻

认证成功后,当前会话不会失效:

public void doAction(HttpServletRequest request, HttpServletResponse response) {
    String pwd = request.getParameter("j_password");
    String usr = request.getParameter("j_username");
    SessionUser user = persistenceController.loginUser(usr, pwd);
    String msg = "";
    try {
        if (user != null) {

            // XXX session not invalidated!

            request.getSession().setAttribute(Constants.USER, user);
            msg = messageGenerator.RedirectMessage("/ok.html");
        } else {
            msg = messageGenerator.redirectMessage("/error.html");
        }

        PrintWriter out;
        out = response.getWriter();
        out.print(msg);
        out.flush();
    } catch (IOException e) {
        // ...
    }
}

解决方案是使当前会话无效,然后为新登录的用户创建一个新的会话:

request.getSession().invalidate();
request.getSession(true);

另一个漏洞代码示例

安全技术研究-Broken Session Management(JAVA代码) - 天天要闻


在本例中,注销时会话不会失效。cookie的值只在用户的浏览器中被清除:

@Override
public void doAction(HttpServletRequest request, HttpServletResponse response) {
    Cookie cookie = new Cookie("JSESSIONID","LOGOFF");
    response.addCookie(cookie);

    // XXX session not invalidated!

    response.sendRedirect("/");
}

解决方案是使会话失效:

request.getSession().invalidate();

如何防护

对于会话固定的问题,在用户身份验证成功后调用HttpSession类的invalidate方法。然后通过将true传递给HttpServletRequest类的getSession方法来创建一个新的会话。

第三方框架可能已经集成了处理会话管理的解决方案;一定要通过阅读第三方框架的帮助文档了解如何使会话失效。

确保在注销时通过调用HttpSession类的invalidate方法使会话失效。

科技分类资讯推荐

行业首发三大场景,小鹏联手华为做出世界最好AR-HUD - 天天要闻

行业首发三大场景,小鹏联手华为做出世界最好AR-HUD

昨日,小鹏汽车联合华为智能汽车解决方案发布世界最好的车载AR-HUD——“追光全景”抬头显示,这是全球首个真正融入AI智驾的HUD解决方案,也是视觉效果最好的AR-HUD。发布会上,小鹏汽车副总裁、产品运营中心负责人陈永海表示:HUD的最大价值是对人的引导,强
800V+华为干昆智驾,奥迪Q6L e-tron对比蔚来ES6谁更强? - 天天要闻

800V+华为干昆智驾,奥迪Q6L e-tron对比蔚来ES6谁更强?

在2025粤港澳车展上,一汽奥迪Q6L e-tron家族正式开启预售,作为PPE纯电平台打造的首款旗舰车型,其在智能座舱、智能辅助驾驶、电子电气架构以及“三电”系统方面实现了全面革新,堪称今年豪华纯电车市场的重磅之作。
座椅皮革如何清理? - 天天要闻

座椅皮革如何清理?

在汽车的使用过程中,一般深色衣服极其容易褪色,久而久之浅色皮革上会沾有一点颜色;另外灰尘、饮料、食物、油渍类等沾到皮革表面,也很影响座椅表面的清洁度。
哈弗 H6 国潮版一口价 7.19 万元起!配备 12.3 英寸中控屏 - 天天要闻

哈弗 H6 国潮版一口价 7.19 万元起!配备 12.3 英寸中控屏

在紧凑型 SUV 市场的激烈角逐中,哈弗 H6 国潮版以震撼低价掀起购车热潮 —— 一口价 7.19 万元起的超值定价,搭配越级配置,成为家庭用户的高性价比之选。其中,1.5T 手动两驱都市版售价 7.19 万元,1.5T 自动两驱都市版售价 8.19 万元,
极狐全新轿车谍照曝光!或命名为极狐 S1 - 天天要闻

极狐全新轿车谍照曝光!或命名为极狐 S1

新能源汽车赛道竞争愈发激烈,各车企纷纷加速新品布局。近日,一组极狐全新轿车的谍照在网络上曝光,据悉,这款新车或命名为极狐 S1。尽管谍照中的车辆身披厚重伪装,但仍难掩其独特魅力,从外观到内饰,再到动力系统,都引发了市场的广泛猜测与期待。
极氪 9X 车型实车曝光!计划今第三季度正式上市 - 天天要闻

极氪 9X 车型实车曝光!计划今第三季度正式上市

近日,极氪旗下全新车型 —— 极氪 9X 实车惊艳曝光,引发汽车圈广泛关注。据悉,这款备受期待的车型计划于今年第三季度正式上市,有望为紧凑级豪华纯电 SUV 市场注入全新活力。从实车展现的外观,及动力来看,极氪 9X 亮点满满,令人期待值拉满。
中国关系型数据库软件市场年复合增长率超20%,软件ETF连续3天净流入超亿元 - 天天要闻

中国关系型数据库软件市场年复合增长率超20%,软件ETF连续3天净流入超亿元

截至2025年6月20日 13:02,中证软件服务指数下跌1.29%。成分股方面,国联股份领跌,电科网安、太极股份、恒生电子、启明星辰跟跌。软件ETF(159852)回调蓄势。拉长时间看,截至2025年6月19日,软件ETF近1年累计上涨29.13%。流动性方面,软件ETF盘中换手3.44%,成交1.01亿元。拉长时间看,截至6月19日,软件ETF近1年日均