界: API Abuse
API 是调用方和被调用方之间的约定。最常见的 API 滥用是由于调用方未能遵守此约定的终止导致的。例如,如果某个程序在调用 chroot() 后未能调用 chdir(),则违反了用于指定如何安全地更改活动根目录的约定。库滥用的另一个典型示例是期望被调用方向调用方返回可信的 DNS 信息。在这种情况下,调用方通过对被调用方行为做出某种假设(返回值可用于身份验证目的)滥用其 API。另一方也可能违反调用方-被调用方约定。例如,如果编码器子类化 SecureRandom 并返回一个非随机值,则将违反此约定。
Code Correctness: ToString on Array
Abstract
ToString()
在数组上被调用。Explanation
大多数情况下,在数组上调用
示例 1:以下代码将输出
ToString()
表示开发者希望将数组内容作为字符串返回。然而,在数组上直接调用 ToString()
将返回一个字符串值,它包含该数组的类型。示例 1:以下代码将输出
System.String[]
。
String[] stringArray = { "element 1", "element 2", "element 3", "element 4" };
System.Diagnostics.Debug.WriteLine(stringArray.ToString());
References
[1] Class Arrays Microsoft
[2] Standards Mapping - Common Weakness Enumeration CWE ID 398
desc.structural.dotnet.code_correctness_tostring_on_array
Abstract
toString()
在数组上被调用。Explanation
大多数情况下,在数组上调用
例 1:以下代码将输出
toString()
表示开发者希望将数组内容作为字符串返回。然而,在数组上直接调用 toString()
将返回一个字符串值,它包含内存中该数组的类型和哈希码。例 1:以下代码将输出
[Ljava.lang.String;@1232121
。
String[] strList = new String[5];
...
System.out.println(strList);
References
[1] Class Arrays Sun Microsystems
[2] Standards Mapping - Common Weakness Enumeration CWE ID 398
desc.structural.java.code_correctness_tostring_on_array