安全技术研究-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方法使会话失效。

科技分类资讯推荐

岚图梦想家6月限时补贴5.5万起 豪华套件0元升级 - 天天要闻

岚图梦想家6月限时补贴5.5万起 豪华套件0元升级

6月6日,岚图汽车官方宣布最新限时购车政策:6月7日至6月30日期间,用户下定并交付全新岚图梦想家,可立省现金5.5万起,包括限时厂家补贴1万元,国家及地方政府补贴至高1.5万元,限时保险补贴5000元,限时享全品牌置换补贴5000元起,并享受限时3年0息金融
2027年换代丰田Harrier前瞻:极致轿跑风+新1.5T混动系统 - 天天要闻

2027年换代丰田Harrier前瞻:极致轿跑风+新1.5T混动系统

自2020年6月现行版本推出以来已过去约6年,新款Harrier的全貌终于逐渐清晰。随着新款RAV4于2025年5月21日在全球首发,采用相同GA-K平台的下一代Harrier也备受关注。Harrier原本预计将在2026年左右进行换代。然而,由于丰田目前仍面
行业首发三大场景,小鹏联手华为做出世界最好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。尽管谍照中的车辆身披厚重伪装,但仍难掩其独特魅力,从外观到内饰,再到动力系统,都引发了市场的广泛猜测与期待。