CWE-480:使用不正确的操作员
查看自定义信息:
该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
与观点“研究概念”相关(CWE-1000)
该清单显示了可能出现的弱点的可能区域。这些可能适用于特定的命名语言,操作系统,体系结构,范式,技术或一类此类平台。该平台与给定弱点出现在该实例的频率一起列出。
语言 C(有时普遍) C ++(有时普遍) 珀尔(有时普遍) 班级:不是特定语言的(不确定的患病率)
该表指定与弱点相关的不同个人后果。该范围确定了违反的应用程序安全区域,而影响描述了如果对手成功利用这一弱点,就会产生负面的技术影响。其可能性提供了有关预期相对于列表中其他后果的特定后果的可能性的信息。例如,可能会利用弱点来实现一定的影响,但很可能会利用它来实现不同的影响。
示例1 以下C/C ++和C#示例试图针对整数值100验证INT输入参数。
(不良代码)
示例语言:C
int iSvalid(int value){
如果(值= 100){ }
printf(“ value是有效的\ n”); }返回(1); printf(“值无效\ n”); 返回(0);
(不良代码)
示例语言:C#
bool iSvalid(int value){
如果(值= 100){ }
Console.Writeline(“ Value是有效的。”); }返回true; Console.Writeline(“值无效。”); 返回false; 但是,在IF语句中要评估的表达式使用分配运算符“ =”而不是比较操作员“ ==”。使用分配运算符代替比较操作员的结果导致int变量在本地重新分配,并且IF语句中的表达式将始终评估表达式的右侧值。这将导致输入值未正确验证,这可能会导致意外的结果。 示例2 以下C/C ++示例显示了一个简单的堆栈实现,该堆栈包括用于添加和从堆栈中添加整数值的方法。该示例使用指针将整数值添加和删除到堆栈数组变量。
(不良代码)
示例语言:C
#定义50号
int *tos, *p1,stack [size]; void push(int i){
P1 ++;
if(p1 ==(tos+size)){ //打印堆栈溢出错误消息和退出 *p1 == i; int pop(void){
如果(p1 == tos){
//打印堆栈下流错误消息和退出 P1-; 返回 *(P1+1); int main(int argc,char *argv []){ //初始化TOS和P1以指向堆栈的顶部 tos = stack; p1 = stack; //代码以添加和删除堆栈中的项目 ... 返回0; 推动方法包括一个表达式,将整数值分配给指针变量指向的堆栈中的位置。 但是,此表达式使用比较运算符“ ==”而不是分配操作员“ =”。使用比较操作员而不是分配操作员的结果导致错误的值输入堆栈中,并可能导致意外的结果。
此成员关系表显示了其他CWE类别和视图,将此弱点称为成员。该信息通常可用于理解弱点适合外部信息源的何处。
提供更多信息 - 请选择其他过滤器。
|
使用共同弱点枚举(CWE)和本网站的相关参考使用条款。CWE由美国国土安全部(DHS)网络安全和基础设施安全局(CISA),由国土安全系统工程和开发研究所(HSSEDI)由manbetx客户端首页(MITER)。版权所有©2006–2023,Miter Comanbetx客户端首页rporation。CWE,CWSS,CWRAF和CWE徽标是Miter Corporation的商标。manbetx客户端首页 |