关注公众号“中科天齐软件安全中心”(id:woocoom),一起涨知识!
该栏目为中科天齐全新规划的悟空云课堂,每周五下午18:00准时上线,旨在科普软件安全相关知识,助力企业有效防范软件安全漏洞,提升网络安全防护能力。
【悟空云课堂】第三十期:抛出通用异常(CWE-397: Declaration of Throws for Generic Exception)
什么是抛出通用异常缺陷?
抛出过于宽泛的异常会导致复杂的错误处理代码,这些代码很可能包含安全漏洞。
声明抛出Exception或Throwable的方法会使调用方难以执行正确的错误处理和错误恢复。例如,Java的异常机制的设置使调用者能够轻松地预测可能出现的错误,并编写代码来处理每个特定的异常情况。
抛出通用异常缺陷构成条件有哪些?
抛出过于宽泛的异常。
抛出通用异常缺陷会造成哪些后果?
声明一个方法抛出泛型形式的异常会使系统失败。
抛出通用异常缺陷的防范和修补方法有哪些?
将方法抛出异常的类型具体详细化。
抛出通用异常缺陷样例:
…
if (cTemplate == null) {
throw new RuntimeException(
"get current template error. please define correct template in jpress.properties.");
}
…
用Wukong(悟空)软件代码安全检测修复系统检测上述程序代码,则可以发现代码中存在着“抛出通用异常” 导致的代码缺陷,如下图:
抛出通用异常缺陷在CWE中被编号为CWE-397: Declaration of Throws for Generic Exception
更多的信息请参考CWE官网:http://cwe.mitre.org/data/definitions/397.html
了解更多安全资讯 请关注公众号 中科天齐软件安全中心