CS.BANNED.PARSE
パースを使用しないでください。
この規則は、TryParse をサポートしている型で、Parse メソッドの使用にフラグを立てます。
注意: .NET Framework 1.1 および 1.0 では、いくつかの型での TryParse のサポートは、バージョン 2.0 以降と比べると大きく異なります。そのため、バージョン 1.1 および 1.0 では、多くの型が TryParse をサポートしていません (またはオーバーロードが 1 つの状態でのみサポートします)。詳細については、MSDN オンラインヘルプを参照してください。
脆弱性とリスク
解析された数値は、多くの場合、信頼できないソースに由来する可能性があるため、セキュリティリスクが生じる可能性があります。
軽減と防止
解析の結果を確認し、例外を明示的にスローすることをお勧めします。TryParse を使用すると、スローされた例外があり得るという事実を、デベロッパーが認識できるようになります。
脆弱コード例
コピー
public void SampleMethod(string s)
{
// your code here
double doubleVal = Double.Parse(s); // Violation
// your code here
}
修正コード例
コピー
public void SampleMethod(string s)
{
// your code here
double doubleVal;
bool result;
#if NET20
result = Double.TryParse(s, out doubleVal); // Fixed
#endif
// your code here
}