描述
Servlet不能捕获所有异常,这可能显示敏感的调试信息。
扩展描述
当一个Servlet将抛出一个异常,默认错误响应Servlet容器发送回用户通常包括调试信息。这些信息是很有价值的攻击者。例如,一个堆栈跟踪可以显示攻击者一个畸形的SQL查询字符串,正在使用的数据库类型和版本的应用程序容器。这些信息使攻击者针对已知的漏洞在这些组件。
替代条款
的关系
模式的介绍
不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
常见的后果
这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 |
影响 |
可能性 |
保密 可用性
|
技术的影响:阅读应用程序数据;DoS:崩溃,退出或重新启动
|
|
示范例子
示例1
下面的例子试图解决一个主机名。
保护无效doPost (HttpServletRequest点播,HttpServletResponse res)抛出IOException {
字符串ip = req.getRemoteAddr (); InetAddress addr = InetAddress.getByName (ip); … 出去了。println (“hello”+ addr.getHostName ()); }
一个DNS查找失败将导致Servlet抛出一个异常。
潜在的缓解措施
会员资格
这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
笔记
维护
“失踪的Catch块”的概念可能是更广泛的比servlet、但没有足够CWE覆盖更广泛的概念。
分类法映射
映射分类名称 |
节点ID |
适合 |
映射节点名 |
CERT甲骨文安全Java编码标准(2011) |
ERR01-J |
|
不允许例外暴露敏感信息 |
软件故障模式 |
SFP4 |
|
不受控制的状态条件 |
|