Reino: Code Quality

Una mala calidad del código lleva a un comportamiento no predecible. Desde la perspectiva de un usuario, muchas veces también supone una usabilidad limitada. Pero para un atacante es una oportunidad para atacar al sistema de formas insospechadas.

Code Correctness: Erroneous Null Comparison

Abstract
Las expresiones x = NULL y x != NULL siempre serán falsas.
Explanation
En PL/SQL, el valor de NULL es indeterminado. No es igual a ningún valor, ni incluso a otro valor NULL. Además, un valor null nunca es igual a otro valor.

Ejemplo 1: la siguiente instrucción siempre será falsa.


checkNull BOOLEAN := x = NULL;
Ejemplo 2: la siguiente instrucción siempre será falsa.


checkNotNull BOOLEAN := x != NULL;
References
[1] Steven Feuerstein Oracle PL/SQL Best Practices O'Reilly
[2] Standards Mapping - CIS Azure Kubernetes Service Benchmark 1
[3] Standards Mapping - CIS Amazon Elastic Kubernetes Service Benchmark 3
[4] Standards Mapping - CIS Amazon Web Services Foundations Benchmark 1
[5] Standards Mapping - CIS Google Kubernetes Engine Benchmark normal
[6] Standards Mapping - Common Weakness Enumeration CWE ID 480
desc.structural.sql.code_correctness_erroneous_null_comparison_plsql