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
 }