漏洞解析——通用异常缺陷及字符串比较缺陷
本期主题为抛出通用异常缺陷漏洞和字符串比较缺陷漏洞的相关介绍,欢迎大家一起探讨!
▲ 抛出通用异常缺陷漏洞
抛出过于宽泛的异常会导致复杂的错误处理代码,这些代码很可能包含安全漏洞。
声明抛出Exception或Throwable的方法会使调用方难以执行正确的错误处理和错误恢复。例如,Java的异常机制的设置使调用者能够轻松地预测可能出现的错误,并编写代码来处理每个特定的异常情况。
二、抛出通用异常缺陷的构成条件有哪些?
抛出过于宽泛的异常。
三、抛出通用异常缺陷会造成哪些后果?
声明一个方法抛出泛型形式的异常会使系统失败。
四、抛出通用异常缺陷的防范和修补方法有哪些?
将方法抛出异常的类型具体详细化。
五、抛出通用异常缺陷样例:
用Wukong软件检测上述程序代码,则可以发现代码中存在着“抛出通用异常”Secure属性” 导致的代码缺陷,如下图:
抛出通用异常缺陷在CWE中被编号为CWE-397:Declaration of Throws for Generic Exception
▲ 使用错误的运算符进行字符串比较缺陷漏洞
一、什么是使用错误的运算符进行字符串比较缺陷?
比较字符串时,使用了错误的运算符,例如当应使用equals()方法代替时,使用“==”。
二、使用错误的运算符进行字符串比较缺陷的构成条件有哪些?
使用“==”运算符比较字符串。
三、使用错误的运算符进行字符串比较缺陷会造成哪些后果?
在Java中,使用”==”或”!=”比较两个字符串是否相等,实际上是比较两个对象是否相等,而不是它们的值。两个对象很可能永远不会相等。虽然该缺陷通常只影响程序的正确性,但如果将相等性用于安全决策,则可能会影响程序的安全性。
四、使用错误的运算符进行字符串比较缺陷的防范和修补方法有哪些?
使用equals()比较字符串。
五、使用错误的运算符进行字符串比较缺陷样例:
用Wukong软件检测上述程序代码,则可以发现代码中存在着“使用错误的运算符进行字符串比较” 导致的代码缺陷,如下图:
使用错误的运算符进行字符串比较缺陷在CWE中被编号为CWE-597:Use of Wrong Operator in String Comparison