CS.STMT.IFELSE.BLOCK
if/else ステートメントのボディはブロックでなければなりません。
if/else ステートメントのボディは、{ と } の間のブロックである必要があります。
脆弱性とリスク
if/else ステートメントのボディで波括弧を省略すると、不注意なプログラミングエラーが発生する可能性があります。
軽減と防止
if/else ステートメントのボディでは、波括弧を使用します。
脆弱コード例
コピー
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace kmcustom
{
class C18
{
public void doSomething()
{
}
public void testNGIf(int some_number)
{
if (some_number == 1)
doSomething();
else if (some_number == 2)
doSomething();
else
doSomething();
if (some_number == 3) ;
else if (some_number == 4) ;
else;
}
public void testOKIf(int some_number)
{
if (some_number == 1)
{
doSomething();
}
else if (some_number == 2)
{
doSomething();
}
else {
doSomething();
}
}
}
}