众所周知,将异常信息暴露给最终用户会带来安全风险,因为攻击者可以使用它来弄清楚事情在内部是如何工作的并对其进行攻击。但是对于 Web 服务,该信息可能与使用 API 的开发人员相关吗?
一方面暴露完整的堆栈跟踪甚至消息是有风险的,因为它可能包含一些数据库信息,例如另一方面如果出现问题并且服务器只是说 500“对不起”,那么开发人员会感到沮丧。我想真正正确的方法是以安全的方式处理您知道的所有异常,即捕获业务/验证异常并使用特殊的错误代码和消息(无堆栈跟踪)将其返回,并且对于所有未知的仍然使 500 “抱歉”。
但是我想在这里做这件事的常用方法是什么,从安全的角度来看应该采取哪种方法。