데이터베이스 오류 메시지 생성 시 민감한 정보 포함

설명

애플리케이션에서 데이터베이스 오류 메시지를 반환하는 것으로 발견되었습니다. 데이터베이스 유형을 결정하는 것은 공격자가 시스템에 대한 SQL Injection 공격을 악용하는 데 도움이 될 수 있습니다. 디버그 메시지는 개발 및 디버깅 중에 유용하지만, 오류가 발생할 때 사용자에게 표시되어서는 안 됩니다.

수정 방법

애플리케이션은 데이터베이스 오류 조건을 내부적으로 처리하고, 알려진 실패 유형을 사용자에게 표시할 수 있는 오류 코드로 매핑해야 합니다. 이러한 오류 코드는 애플리케이션에 맞게 사용자 정의되어야 하며, 관련 HTTP 오류 코드와 함께 반환되어야 합니다.

오류가 발생할 때 애플리케이션은 오류 유형 또는 클래스를 식별하고 사용자에게 숫자 값을 표시합니다. 요청도 추적되어 사용자가 오류 코드를 받을 때 해당 요청 ID가 있어야 합니다. 지원 팀은 로그 파일에서 HTTP 오류, 사용자 정의 오류 코드 및 요청 ID를 상관시켜 오류의 근본 원인을 파악할 수 있으며, 사용자에게 세부 정보를 유출하지 않도록 합니다.

사용자 정의 오류 반환 예시:

HTTP/1.1 500 Internal Server Error
...
오류 [0004] 발생, 지원 팀에 문의하거나 잠시 후 요청을 다시 시도해 주세요.
요청 ID [a4bc91def12]
...

세부 사항

ID 집계 CWE 유형 위험
209.2 false 209 Passive Low

링크