界: Errors
エラーとエラー処理は、API のクラスを表しています。エラー処理に関連するエラーは、非常に一般的であるため、独自の特別な分野を用意する必要があります。API の悪用と同様に、エラーに関連するセキュリティ脆弱性を引き起こす方法は 2 つあります。最も一般的な方法は、エラーを適切に処理しない (またはまったく処理しない) ことです。もうひとつは、(可能性のある攻撃者に) 過剰な情報を与えるエラーか、処理が困難なエラーを生成することです。
Code Correctness: Typographical Error
Abstract
コントラクトは、誤字が発生しやすい操作を使用しています。
Explanation
操作時に誤字があると、予期しない結果が生じる可能性があります。たとえば、
例 1 次のコードは、変数
+=
を使用して変数に数値を加算しようとしたときに誤って =+
と記述しても、操作はまだ有効です。ただし、加算を実行する代わりに、変数が再初期化されます。例 1 次のコードは、変数
numberOne
に数値を加算することを目的としています。しかし、=+
演算子を使用すると、実際には変数が 1 に再初期化されます。
uint numberOne = 1;
function alwaysOne() public {
numberOne =+ 1;
}
References
[1] Enterprise Ethereum Alliance Typographic Conventions
[2] Standards Mapping - CIS Azure Kubernetes Service Benchmark 2.0
[3] Standards Mapping - CIS Amazon Elastic Kubernetes Service Benchmark 5.0
[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 480
[7] Standards Mapping - Smart Contract Weakness Classification SWC-129
desc.structural.solidity.swc129