Help us learn about your current experience with the documentation. Take the survey.
生成包含敏感信息的错误消息
Description
应用程序被发现返回了诸如堆栈跟踪(stack traces)之类的错误数据。根据错误消息中包含的数据,攻击者可能会利用这些信息进行进一步的攻击。虽然堆栈跟踪在开发和调试时很有帮助,但在发生错误时不应向用户展示。
Remediation
应用程序应该内部处理异常情况,并将已知的失败类型映射到可以向用户显示的错误代码。这些错误代码应该针对应用程序进行定制,并随相应的 HTTP 错误代码一起返回。
当发生错误时,应用程序会识别错误类型或类别,并向用户显示一个数值。还应该跟踪请求,这样当用户看到错误代码时,它会有一个对应的请求 ID。支持团队随后可以在日志文件中关联 HTTP 错误、定制的错误代码和请求 ID,以确定错误的根本原因,而不会向最终用户泄露详细信息。
返回定制错误的示例:
HTTP/1.1 500 内部服务器错误
...
错误 [0004] 发生,请联系支持或稍后重试您的请求。
请求 ID [a4bc91def12]
...Details
| ID | Aggregated | CWE | Type | Risk |
|---|---|---|---|---|
| 209.1 | false | 209 | Passive | Low |