minimize

Sunのセキュリティに関するルールセットです。

MethodReturnsInternalArray

配列フィールドをメソッドの戻り値として直接返している箇所を検出します。

public class Foo {
  private String[] datas;
  public String[] getDatas() {
    return datas;
  }
}

このようにすると、getDatas() からの戻り値を呼び出し側で変更した場合に
datasフィールドの内容が変更される事になります。
これは、今後のデバッグを非常に困難にします。
こういった事態を避けるために、配列のコピーを返すようにすれば問題は発生しません。

ArrayIsStoredDirectly

MethodReturnsInternalArray の逆です。
メソッドの引数として与えられた配列を、フィールドに直接代入している箇所を検出します。
これも同様に、配列のコピーを使うようにすれば問題は発生しません。

[コメント(0)]