CS.METHOD.RETURN.REF_MEMBER
メソッドで参照型が返されるメンバー変数。
メンバー関数は、定数でない限り参照型メンバーを返すべきではありません
脆弱性とリスク
返されたオブジェクトは変更され、意図しない動作を引き起こす可能性があります。
軽減と防止
設計をレビューして、参照型メンバー変数を返す必要があるかどうかを確認します。
脆弱コード例
コピー
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace kmcustom
{
class MyCls
{
public string _str = "abc";
public void setStr(string str)
{
_str = str;
}
public string getStr()
{
return _str;
}
}
class C16
{
private string str = "abc";
private String cstr = "abc";
private int number = 1;
private int[] int_array = new int[5];
private MyCls myCls = new MyCls();
public string getStr()
{
return str;//OK - string or String is immutable
}
public string getCStr()
{
return str;//OK - string or String is immutable
}
public int getNumber()
{
return number;//OK
}
public MyCls getMyCls()
{
return myCls;//NG
}
public int[] getIntArray()
{
for(int i = 0; i < int_array.Length; i++)
{
int_array[i] = 0;
}
return int_array;//NG
}
public void printIntArray()
{
for (int i = 0; i < int_array.Length; i++) {
Console.WriteLine("index:"+ i + " value:"+ int_array[i]);
}
}
}
}