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

科技分类资讯推荐

2025款风云A8焕新上市,现金一口价8.99万元起 - 天天要闻

2025款风云A8焕新上市,现金一口价8.99万元起

全民高性能,节能零妥协!4月10日,超能混动新家轿——2025款风云A8于奇瑞“混动之夜”焕新上市,以8.99万元起的现金一口价,将国民混动家轿的价值推向全新高度。作为奇瑞以全球标准打造的轿车,风云A8集高节能、高性能、高安全、高智能四大优势于一身,不仅能在全
技术王炸只要20万,汉L唐L上市,威胁了理想? - 天天要闻

技术王炸只要20万,汉L唐L上市,威胁了理想?

4月9日晚,比亚迪又向汽车市场扔下了一对儿王炸,王朝网全新双旗舰汉L和唐L正式上市。还记得上个月,两车在超级e平台技术发布会上开启预售后,大家说的最多的除了新技术,就是有点贵了(汉L EV预售27-35万元;唐L EV预售28-36万元)。但当时谁也没想到,最
比亚迪双旗舰汉L唐L正式上市,售价20.98万元起 - 天天要闻

比亚迪双旗舰汉L唐L正式上市,售价20.98万元起

4月9日,比亚迪划时代双旗舰车型重磅上市。其中,旗舰轿车汉L共推出汉L EV、汉L DM两大车系。新车长宽高分别为5050*1960*1505mm,轴距2970mm,是标准的C+级轿车。其中,汉L EV坐拥701KM激光雷达尊享型、701KM激光雷达旗舰型、四
汉唐L震撼上市,20万级的市场又要变天了! - 天天要闻

汉唐L震撼上市,20万级的市场又要变天了!

4月9日,比亚迪直接甩出王炸——旗舰轿车汉L和旗舰SUV唐L同步上市!价格直接杀到20万出头(汉L 20.98万起,唐L 22.98万起)。目标很明确:年轻人第一台“超跑级”轿车,大家庭的“全能移动城堡”,这次连特斯拉、BBA和理想都得捏把汗!
长安汽车公布4月新品计划  9款新品将登场亮相 - 天天要闻

长安汽车公布4月新品计划 9款新品将登场亮相

4月8日,长安汽车公布了4月新品计划,包括阿维塔06、阿维塔07探索版、启源 Q07等9款车型即将亮相。新品计划涵盖了多个细分市场,从轿车到SUV,再到新能源车型,展现了长安汽车的产品布局和对市场需求的积极响应。