☕ Java 코드 에디터
취약한 코드
public class AccountServlet extends HttpServlet {
// [취약] 인스턴스 필드는 모든 요청/사용자가 공유 → 타 사용자 정보 노출
private String currentUser;
protected void doGet(HttpServletRequest req, HttpServletResponse res) {
currentUser = req.getParameter("user");
res.getWriter().println(loadBalance(currentUser));
}
}
💡 수정 가이드 (KISA 기준)
1. 상태 격리
공유 필드 제거, 세션 사용.
protected void doGet(HttpServletRequest req, HttpServletResponse res) {
String user = req.getParameter("user"); // 요청 지역변수
req.getSession().setAttribute("user", user); // 사용자별 세션
res.getWriter().println(loadBalance(user));
}
📊 분석 결과 및 설명
🎯 목표
멀티스레드 환경에서 사용자별 데이터를 공유 필드가 아닌 세션/지역변수에 보관합니다.
⚠️ 현재 취약점
Wrong-Session Data Exposure
공유 인스턴스 필드로 동시 사용자 정보가 교차 노출됩니다.