설명
운영 코드에 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는 준비되어 있다고 가정합니다. 사용자 식별자도 개인정보가 될 수 있으므로 로그 접근과 보존 기간을 제한하세요.