Безопасность ПУТИ К КЛАССУ

На этом сообщении кто-то упомянул в комментарии то добавление .: к PATH переменная среды является уязвимостью системы обеспечения безопасности. Добавляет .: к CLASSPATH переменная среды также уязвимость системы обеспечения безопасности?

1
задан 21 May 2018 в 09:29

1 ответ

Да, это может быть уязвимость системы обеспечения безопасности.

Помещение .: впереди CLASSPATH средства, что Java использует классы под текущим каталогом прежде, чем потрудиться искать остальную часть CLASSPATH пути. Это означает это .class файлы в текущем каталоге или его подкаталогах будут использоваться вместо примерно любого класса или интерфейса. Например, если файл ./java/lang/String.class существует, это будет использоваться вместо стандарта String класс.

Это означает, что, если Вы не уделение внимания, что - текущий каталог, когда Вы запускаете программу Java, программа могла бы загрузить злонамеренные классы вместо примерно любого класса вообще.

Для сохранения себя усилие по напряженной проверке текущего каталога каждый раз, когда Вы когда-либо запускаете программу Java, Вы не должны устанавливать систему, чтобы сделать это по умолчанию.

Если Вы собираетесь использовать классы под текущим каталогом, когда Вы запускаете конкретную программу Java, необходимо обычно пропускать установку CLASSPATH и используйте -cp аргумент java вместо этого, как в:

java -cp ".:…" …

Это полностью старается не влиять на другие программы Java через CLASSPATH переменная среды. Необходимо только сделать это в случаях, где Вы знаете, что файлы под текущим каталогом не являются злонамеренными.

2
ответ дан 7 December 2019 в 13:24

Другие вопросы по тегам:

Похожие вопросы: