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.

Solidity Bad Practices: Lack of Explicit Variable Visibility

Abstract
Una variable de estado no especifica explícitamente el nivel de visibilidad.
Explanation
Al desarrollar un contrato inteligente de Solidity, los desarrolladores deben configurar la visibilidad de las variables de estado para controlar quién puede obtenerlas o configurarlas.

Configurar explícitamente la visibilidad de las variables de estado hace que sea más fácil detectar suposiciones incorrectas sobre quién puede acceder a la variable.

Ejemplo 1: El siguiente código no logra configurar un nivel explícito de visibilidad para una variable.


bytes16 data = "data";
References
[1] Enterprise Ethereum Alliance Code Linting
[2] Standards Mapping - CIS Azure Kubernetes Service Benchmark 2
[3] Standards Mapping - CIS Amazon Elastic Kubernetes Service Benchmark 5
[4] Standards Mapping - CIS Amazon Web Services Foundations Benchmark 3
[5] Standards Mapping - CIS Google Kubernetes Engine Benchmark normal
[6] Standards Mapping - Common Weakness Enumeration CWE ID 710
[7] Standards Mapping - Smart Contract Weakness Classification SWC-108
desc.structural.solidity.swc108