# Generation of Error Message Containing Sensitive Information (CWE-209) The product generates an error message that includes sensitive information about its environment, users, or associated data. **Stack:** Go - Prevalence: 보통 3개 언어 지원 - Impact: 보통 검토 권장 - Prevention: 문서화됨 5개의 수정 예시 **OWASP:** Insecure Design (A04:2021-Insecure Design) - #4 ## Description The sensitive information may be valuable information on its own, or it may be useful for launching other, more serious attacks. The error message may be created in different ways, and the information that is included can range widely. ## Prevention 1개의 Shoulder 탐지 규칙을 기반으로 한 Error Message Information Leak 예방 전략. ### Go Return generic error messages to clients; log detailed errors server-side ## Consequences - 애플리케이션 데이터 읽기 - 파일 또는 디렉터리 읽기 ## Mitigations - 예외는 내부에서 처리하고 사용자에게 오류를 노출하지 마세요 - 404, 500 등 HTTP 오류용 기본 오류 페이지를 만드세요 - 서버에는 상세 오류를 기록하되 사용자에게는 일반적인 메시지만 보여주는 적절한 오류 처리를 구현하세요 ## Detection - Total rules: 5 - Languages: go, javascript, typescript, python ## Rules by Language ### Go (1 rules) - **Database Error Information Exposure in HTTP Response** [MEDIUM]: Internal error messages or stack traces exposed to users in HTTP responses. - Remediation: Return generic error messages to users, log details server-side. ```go if err != nil { log.Printf("internal error: %v", err) // Log details http.Error(w, "An error occurred", 500) // Generic response return } ``` Learn more: https://shoulder.dev/learn/go/cwe-209/error-message-exposure