安全技術研究-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方法使會話失效。

科技分類資訊推薦

漢唐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,再到新能源車型,展現了長安汽車的產品布局和對市場需求的積極響應。
天地門解鎖N+1種生活!東風納米06全球首秀 - 天天要聞

天地門解鎖N+1種生活!東風納米06全球首秀

4月8日,東風納米第二款新能源車型「納米06」全球首秀活動在北京盛大舉行。憑藉奇趣魔方設計理念、同級唯一天地門等越級豪華滿配,東風納米06重新定義了國民純電SUV的價值標杆。
科技以民為本,上汽通用五菱發布四大板塊多項技術成果 - 天天要聞

科技以民為本,上汽通用五菱發布四大板塊多項技術成果

4月7日,「向上·超越」上汽通用五菱2025技術進化日活動在中國杭州電競中心成功舉行。立足電智化新時代,堅持以民為本,上汽通用五菱不斷向上超越,在神煉電池、靈眸智駕、靈語座艙和靈犀動力四大板塊發布多項技術成果,全面進化人民的電智神車。同時,寶駿品牌旗下首款「智