Help us learn about your current experience with the documentation. Take the survey.
包含敏感信息的数据库错误消息生成
描述
发现应用程序返回数据库错误消息。确定数据库类型可能有助于攻击者利用 SQL 注入漏洞攻击系统。虽然调试消息在开发和调试过程中很有帮助,但在发生错误时不应向用户展示。
修复建议
应用程序应该在内部处理数据库错误条件,并将已知的失败类型映射到可以向用户显示的错误代码。这些错误代码应该根据应用程序进行定制,并随相关的 HTTP 错误代码一起返回。
当发生错误时,应用程序识别错误类型或类别,并向用户显示一个数值。同时还应该跟踪请求,这样当用户看到错误代码时,它会有一个对应的请求 ID。支持团队随后可以在日志文件中关联 HTTP 错误、定制错误代码和请求 ID,从而确定错误的根本原因,而不会向最终用户泄露详细信息。
返回定制错误的示例:
HTTP/1.1 500 Internal Server Error
...
错误 [0004] 已发生,请联系支持团队或稍后重试您的请求。
请求 ID [a4bc91def12]
...详情
| ID | Aggregated | CWE | Type | Risk |
|---|---|---|---|---|
| 209.2 | false | 209 | Passive | Low |