SonarQube - может предоставлять внутреннее представление путем сохранения внешнего изменяемого объекта - PullRequest
0 голосов
/ 11 октября 2019

приведенный ниже код выдает ошибку при запуске через SonalQube для уязвимости кода.

public class Myclass{

String[] text;

public MyClass(String [] texts){
this.texts = texts;
}
}

Приведенный выше код вызывает ошибку уязвимости: Может открывать внутреннее представление путем сохранения внешнего изменяемого объекта

1 Ответ

0 голосов
/ 13 октября 2019

Как уже упоминалось в комментариях, массивы передаются по ссылке в Java (как все сложные объекты). Это означает, что существует возможность передать действительный Sting [] вашему классу, и после того, как вы проверили его и сохранили, вызывающий объект изменяет содержимое массива на то, что ему когда-либо нужно.

Так что если вы хотитезакройте эту уязвимость, вам нужно хранить массив следующим образом:

public class SaveArrayContainer {

public String[] data;

    public SaveArrayContainer(String[] array) {
        data = Arrays.copyOf(array, array.length);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...