界: Code Quality

コードの質が低いと、予測できない動作につながります。ユーザーの視点には、それがしばしば使い勝手の悪さとなって現れます。攻撃者にとっては、予期せぬ方法でシステムにストレスを与える機会となります。

Solidity Bad Practices: Lack of Explicit Variable Visibility

Abstract
状態変数が可視性のレベルを明示的に指定していません。
Explanation
Solidity スマート コントラクトを開発する際、開発者は状態変数の可視性を設定して、誰が状態変数を取得または設定できるかを制御する必要があります。

状態変数の可視性を明示的に設定すると、誰が変数にアクセスできるかについての誤った思い込みを見つけやすくなります。

例 1: 次のコードは、変数に対して明示的な可視性のレベルを設定していません。


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