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

链接