安全技術研究-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,再到新能源車型,展現了長安汽車的產品布局和對市場需求的積極響應。