데이터베이스 오류 메시지 생성 시 민감한 정보 포함
설명
애플리케이션에서 데이터베이스 오류 메시지를 반환하는 것으로 발견되었습니다. 데이터베이스 유형을 결정하는 것은 공격자가 시스템에 대한 SQL Injection 공격을 악용하는 데 도움이 될 수 있습니다. 디버그 메시지는 개발 및 디버깅 중에 유용하지만, 오류가 발생할 때 사용자에게 표시되어서는 안 됩니다.
수정 방법
애플리케이션은 데이터베이스 오류 조건을 내부적으로 처리하고, 알려진 실패 유형을 사용자에게 표시할 수 있는 오류 코드로 매핑해야 합니다. 이러한 오류 코드는 애플리케이션에 맞게 사용자 정의되어야 하며, 관련 HTTP 오류 코드와 함께 반환되어야 합니다.
오류가 발생할 때 애플리케이션은 오류 유형 또는 클래스를 식별하고 사용자에게 숫자 값을 표시합니다. 요청도 추적되어 사용자가 오류 코드를 받을 때 해당 요청 ID가 있어야 합니다. 지원 팀은 로그 파일에서 HTTP 오류, 사용자 정의 오류 코드 및 요청 ID를 상관시켜 오류의 근본 원인을 파악할 수 있으며, 사용자에게 세부 정보를 유출하지 않도록 합니다.
사용자 정의 오류 반환 예시:
HTTP/1.1 500 Internal Server Error
...
오류 [0004] 발생, 지원 팀에 문의하거나 잠시 후 요청을 다시 시도해 주세요.
요청 ID [a4bc91def12]
...
세부 사항
ID | 집계 | CWE | 유형 | 위험 |
---|---|---|---|---|
209.2 | false | 209 | Passive | Low |