제거되지 않은 디버그 코드

제거되지 않은 디버그 코드

설명

운영 코드에 debugger 문이나 요청 데이터를 출력하는 디버그 로그가 남아 있으면 내부 상태, 개인정보, 인증 흐름이 노출될 수 있습니다. debugger 문은 디버거가 연결되어 활성화된 경우 실행을 멈출 수 있습니다.

잠재적 영향

  • 민감한 요청 데이터가 로그나 콘솔에 노출될 수 있습니다.
  • 디버거 중단점으로 운영 흐름이 예기치 않게 멈출 수 있습니다.

해결 방법

  • 운영 코드에서 debugger 문과 임시 디버그 로그를 제거하세요.
  • 필요한 진단 로그는 구조화된 로깅과 민감 정보 마스킹 정책을 적용하세요.

예시

변경 전

javascript
app.get("/profile", (req, res) => {
  console.log("profile request", req.body);
  res.end();
});

변경 후

javascript
app.get("/profile", (req, res) => {
  auditLogger.info({ userId: req.session.user.id }, "profile viewed");
  res.end();
});

설명:

  • 변경 전: 운영 코드에 debugger 문이나 요청 데이터를 출력하는 디버그 로그가 남아 있으면 내부 상태, 개인정보, 인증 흐름이 노출될 수 있습니다. debugger 문은 디버거가 연결되어 활성화된 경우 실행을 멈출 수 있습니다.
  • 변경 후: 요청 본문 전체 대신 필요한 이벤트와 사용자 식별자만 기록합니다. 인증된 세션과 auditLogger는 준비되어 있다고 가정합니다. 사용자 식별자도 개인정보가 될 수 있으므로 로그 접근과 보존 기간을 제한하세요.

참조