CWE

普遍的弱点

社区开发的软件和硬件弱点类型清单

2021 CWE最重要的硬件弱点
CWE前25个最危险的弱点
>CWE列表> cwe-单个字典定义(4.10)
ID

CWE-595:对象参考而不是对象内容的比较

弱点ID:595
抽象:变体
结构:简单的
查看自定义信息:
+描述
该产品比较对象引用,而不是对象本身的内容,从而阻止其检测等效对象。
+扩展描述
例如,在Java中,使用==对象通常会产生欺骗性结果,因为==操作员比较对象引用而不是值。通常,这意味着使用==字符串实际上是在比较字符串的引用,而不是它们的值。
+关系
部分帮助该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
+与观点“研究概念”相关(CWE-1000)
自然 类型 ID 姓名
Childof 根据基础 - 仍然主要独立于资源或技术的弱点,但有足够的细节来提供特定的检测和预防方法。基本水平的弱点通常用以下维度的2或3来描述问题:行为,财产,技术,语言和资源。 1025 使用错误的因素进行比较
父母 变体变体 - 与某种类型的产品相关的弱点,通常涉及特定的语言或技术。比基本弱点更具体。变体级别的弱点通常以以下维度的3到5来描述问题:行为,财产,技术,语言和资源。 597 在字符串比较中使用错误的操作员
部分帮助该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
+与“软件开发”视图相关(CWE-699)
自然 类型 ID 姓名
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 569 表达问题
部分帮助该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
+与“ CISQ质量措施(2020)”相关(CWE-1305)
自然 类型 ID 姓名
父母 变体变体 - 与某种类型的产品相关的弱点,通常涉及特定的语言或技术。比基本弱点更具体。变体级别的弱点通常以以下维度的3到5来描述问题:行为,财产,技术,语言和资源。 597 在字符串比较中使用错误的操作员
父母 根据基础 - 仍然主要独立于资源或技术的弱点,但有足够的细节来提供特定的检测和预防方法。基本水平的弱点通常用以下维度的2或3来描述问题:行为,财产,技术,语言和资源。 1097 持续的存储数据元素,没有关联的比较控制元件
+介绍模式
部分帮助引言的不同模式提供了有关如何以及何时引入这种弱点的信息。该阶段识别可能发生介绍的生命周期中的一个点,而音符提供了与给定阶段中引言有关的典型情况。
阶段 笔记
执行
+适用的平台
部分帮助该清单显示了可能出现的弱点的可能区域。这些可能适用于特定的命名语言,操作系统,体系结构,范式,技术或一类此类平台。该平台与给定弱点出现在该实例的频率一起列出。

语言

爪哇(不确定的患病率)

JavaScript(不确定的患病率)

php(不确定的患病率)

班级:不是特定语言的(不确定的患病率)

+常见后果
部分帮助该表指定与弱点相关的不同个人后果。该范围确定了违反的应用程序安全区域,而影响描述了如果对手成功利用这一弱点,就会产生负面的技术影响。其可能性提供了有关预期相对于列表中其他后果的特定后果的可能性的信息。例如,可能会利用弱点来实现一定的影响,但很可能会利用它来实现不同的影响。
范围 影响 可能性
其他

技术影响:随上下文而变化

这种弱点会导致错误的结果,从而导致意外的应用行为。
+示例的例子

示例1

在下面的示例中,用相同的字符串值声明并初始化了两个Java字符串对象。if语句用于确定字符串是否等效。

(不良代码)
示例语言:爪哇
字符串str1 = new String(“ Hello”);
字符串str2 = new String(“ Hello”);
if(str1 == str2){
system.out.println(“ str1 == str2”);
}

但是,由于使用“ ==”操作员比较字符串,因此不会执行IF语句。对于Java对象,例如字符串对象,“ ==”操作员比较对象引用,而不是对象值。尽管上面的两个字符串对象包含相同的字符串值,但它们是指不同的对象引用,因此System.out.println语句将不会执行。要比较对象值,可以修改以前的代码以使用等值方法:

(好代码)
if(str1.equals(str2)){
system.out.println(“ str1等于str2”);
}

示例2

在以下Java示例中,使用==运算符在IssameAccount方法中比较了两个BankAccount对象。

(不良代码)
示例语言:爪哇
public boolean insameaccount(bankAccount Accounta,bankAccount帐户){
返回帐户== accountb;
}

使用==操作员比较对象可能会通过比较对象引用而不是值来产生错误或欺骗性的结果。应使用equals()方法来确保正确的结果或对象应包含唯一标识对象的成员变量。

下面的示例显示了使用equals()方法比较bankAccount对象的使用,下一个示例使用类获取方法检索银行帐户号,该银行帐户号唯一地标识了bankAccount对象以比较对象。

(好代码)
示例语言:爪哇
public boolean insameaccount(bankAccount Accounta,bankAccount帐户){
退货帐户。Equals(accountb);
}
+潜在的缓解

阶段:实施

在Java中,使用equals()方法比较对象而不是==操作员。如果使用==,则重要的是,由于性能原因,您的对象是由静态工厂而不是由构造函数创建的。
+会员资格
部分帮助此成员关系表显示了其他CWE类别和视图,将此弱点称为成员。该信息通常可用于理解弱点适合外部信息源的何处。
自然 类型 ID 姓名
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 847 Java(2011)第4章的CERT ORACLE SECURE编码标准 - 表达式(EXP)
成员 看法查看 - CWE条目的子集,提供了一种检查CWE内容的方法。两个主视图结构是切片(平面列表)和图(包含条目之间的关系)。 884 CWE横截面
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 977 SFP辅助群集:设计
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 1136 Java的SEI CERT ORACLE SECURE编码标准 - 指南02.表达式(EXP)
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 1306 CISQ质量措施 - 可靠性
+分类映射
映射的分类名称 节点ID 合身 映射的节点名称
Java(2011)的CERT ORACLE SECURE编码标准 exp02-j 使用两种词汇阵列.equals()方法比较数组的内容
Java(2011)的CERT ORACLE SECURE编码标准 exp02-j 使用两种词汇阵列.equals()方法比较数组的内容
Java(2011)的CERT ORACLE SECURE编码标准 exp03-j 比较盒装原语的值时,请勿使用平等运算符
+参考
[Ref-954] Mozilla Mdn。“平等比较和相同”。<https://developer.mozilla.org/en-us/docs/web/javascript/equality_comparisons_and_sameneses>。URL验证:2017-11-17
+内容历史记录
+提交
提交日期 提交者 组织
2006-12-15 CWE内容团队 MITER
+修改
修改日期 修饰符 组织
2008-07-01 Sean Eidemiller 雪茄
添加/更新的示例
2008-07-01 埃里克·达奇(Eric Dalci) 雪茄
更新的time_of_introduction
2008-09-08 CWE内容团队 MITER
更新的描述,关系,其他_notes
2009-05-27 CWE内容团队 MITER
更新的名称
2010-12-13 CWE内容团队 MITER
更新了示范_examples
2011-06-01 CWE内容团队 MITER
更新的common_conconquence,关系,分类_mappings
2012-05-11 CWE内容团队 MITER
更新的common_cconsquences,expdiveative_examples,关系,分类_mappings
2012-10-30 CWE内容团队 MITER
更新的势_MINEIGATIONS
2014-06-23 CWE内容团队 MITER
更新的适用_platforms,common_consequences
2014-07-30 CWE内容团队 MITER
更新的关系
2018-03-27 CWE内容团队 MITER
更新已更新的适用_platforms,common_constequences,Description,other_notes,entigity_mitigations,参考,关系,类型
2019-01-03 CWE内容团队 MITER
更新的关系,分类_mappings
2020-02-24 CWE内容团队 MITER
更新的关系
2020-08-20 CWE内容团队 MITER
更新的关系
2021-03-15 CWE内容团队 MITER
更新了示范_examples
2023-01-31 CWE内容团队 MITER
更新的描述
+先前的输入名称
改变日期 先前的输入名称
2008-04-11 不正确的对象比较:句法
2009-05-27 错误的句法对象比较
提供更多信息 - 请选择其他过滤器。
页面最后更新:2023年1月31日