CWE-595:对象参考而不是对象内容的比较
查看自定义信息:
该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
与观点“研究概念”相关(CWE-1000)
与“软件开发”视图相关(CWE-699)
与“ CISQ质量措施(2020)”相关(CWE-1305)
该清单显示了可能出现的弱点的可能区域。这些可能适用于特定的命名语言,操作系统,体系结构,范式,技术或一类此类平台。该平台与给定弱点出现在该实例的频率一起列出。
语言 爪哇(不确定的患病率) 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); }
此成员关系表显示了其他CWE类别和视图,将此弱点称为成员。该信息通常可用于理解弱点适合外部信息源的何处。
提供更多信息 - 请选择其他过滤器。
|
使用共同弱点枚举(CWE)和本网站的相关参考使用条款。CWE由美国国土安全部(DHS)网络安全和基础设施安全局(CISA),由国土安全系统工程和开发研究所(HSSEDI)由manbetx客户端首页(MITER)。版权所有©2006–2023,Miter Comanbetx客户端首页rporation。CWE,CWSS,CWRAF和CWE徽标是Miter Corporation的商标。manbetx客户端首页 |