界: API Abuse

API 是调用方和被调用方之间的约定。最常见的 API 滥用是由于调用方未能遵守此约定的终止导致的。例如,如果某个程序在调用 chroot() 后未能调用 chdir(),则违反了用于指定如何安全地更改活动根目录的约定。库滥用的另一个典型示例是期望被调用方向调用方返回可信的 DNS 信息。在这种情况下,调用方通过对被调用方行为做出某种假设(返回值可用于身份验证目的)滥用其 API。另一方也可能违反调用方-被调用方约定。例如,如果编码器子类化 SecureRandom 并返回一个非随机值,则将违反此约定。

SQL Bad Practices: Direct Update

Abstract
Open SQL 直接写入操作不可取,应尽量避免。
Explanation
Open SQL 直接写入操作(插入/更新/修改/删除)通常不可取,应尽量避免。它们会破坏系统的完整性和安全性,且不允许这样操作。



此外,Open SQL 直接写入操作很容易出错,并可能会导致意外的系统行为。在 SAP 中需要留意的一些问题包括:

- SAP 建议使用“更新绑定”技巧来保证 SAP LUW(逻辑工作单位)中的数据完整性,其中,数据完整性问题可能会涉及多个数据库 LUW。在不更新绑定的条件下直接修改表条目会导致 SAP 事务不一致。

- Open SQL 直接写入操作仅设置数据库级别锁定,避开 SAP 应用程序锁定。这可能会导致死锁和数据损坏。

- Open SQL 直接写入操作回避开应用程序中的 SAP 授权检查。

- 使用标准机制编写表条目、编辑检查、审计跟踪时,可正确执行相关更新(如更改文档)。使用 Open SQL 直接写入操作时并非如此。

References
[1] Standards Mapping - CIS Azure Kubernetes Service Benchmark 4
[2] Standards Mapping - CIS Microsoft Azure Foundations Benchmark partial
[3] Standards Mapping - CIS Amazon Elastic Kubernetes Service Benchmark 5
[4] Standards Mapping - CIS Amazon Web Services Foundations Benchmark 2
[5] Standards Mapping - CIS Google Kubernetes Engine Benchmark integrity
[6] Standards Mapping - Common Weakness Enumeration CWE ID 662
[7] Standards Mapping - Common Weakness Enumeration Top 25 2022 [22] CWE ID 362
[8] Standards Mapping - Common Weakness Enumeration Top 25 2023 [21] CWE ID 362
[9] Standards Mapping - DISA Control Correlation Identifier Version 2 CCI-002235
[10] Standards Mapping - General Data Protection Regulation (GDPR) Indirect Access to Sensitive Data
[11] Standards Mapping - Security Technical Implementation Guide Version 5.2 APSC-DV-000500 CAT II
[12] Standards Mapping - Security Technical Implementation Guide Version 5.3 APSC-DV-000500 CAT II
desc.structural.abap.sql_bad_practices_direct_update