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