界: API Abuse
API 是调用方和被调用方之间的约定。最常见的 API 滥用是由于调用方未能遵守此约定的终止导致的。例如,如果某个程序在调用 chroot() 后未能调用 chdir(),则违反了用于指定如何安全地更改活动根目录的约定。库滥用的另一个典型示例是期望被调用方向调用方返回可信的 DNS 信息。在这种情况下,调用方通过对被调用方行为做出某种假设(返回值可用于身份验证目的)滥用其 API。另一方也可能违反调用方-被调用方约定。例如,如果编码器子类化 SecureRandom 并返回一个非随机值,则将违反此约定。
Code Correctness: Negative Content-Length
Abstract
Content-Length
头文件设为负值。Explanation
在大多数情况下,设置
发送给服务器的 POST 数据长度感兴趣。但是,此标题应为
正整数。
示例 1:以下代码将设置不正确的
Content-Length
请求标题表示开发者对发送给服务器的 POST 数据长度感兴趣。但是,此标题应为
0
或正整数。
示例 1:以下代码将设置不正确的
Content-Length
。
URL url = new URL("http://www.example.com");
HttpURLConnection huc = (HttpURLConnection)url.openConnection();
huc.setRequestProperty("Content-Length", "-1000");
References
[1] Standards Mapping - Common Weakness Enumeration CWE ID 398
[2] Standards Mapping - Payment Card Industry Data Security Standard Version 3.0 Requirement 6.5.6
[3] Standards Mapping - Payment Card Industry Data Security Standard Version 3.1 Requirement 6.5.6
[4] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2 Requirement 6.5.6
[5] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2.1 Requirement 6.5.6
desc.structural.java.api_abuse_code_correctness_negative_content_length
Abstract
Content-Length
头文件设为负值。Explanation
在大多数情况下,设置
发送给服务器的 POST 数据长度感兴趣。但是,此标题应为
正整数。
示例 1:以下代码错误地将
Content-Length
请求标题表示开发者对发送给服务器的 POST 数据长度感兴趣。但是,此标题应为
0
或正整数。
示例 1:以下代码错误地将
Content-Length
头文件设置为负值:
xhr.setRequestHeader("Content-Length", "-1000");
References
[1] Standards Mapping - Common Weakness Enumeration CWE ID 398
[2] Standards Mapping - Payment Card Industry Data Security Standard Version 3.0 Requirement 6.5.6
[3] Standards Mapping - Payment Card Industry Data Security Standard Version 3.1 Requirement 6.5.6
[4] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2 Requirement 6.5.6
[5] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2.1 Requirement 6.5.6
desc.structural.javascript.api_abuse_code_correctness_negative_content_length