Spec-Zone .ru
спецификации, руководства, описания, API
|
public final class RuntimePermission extends BasicPermission
Целевое имя является именем разрешения времени выполнения (см. ниже). Соглашение о присвоении имен следует за иерархическим соглашением о присвоении имен свойства. Кроме того, звездочка может появиться в конце имени, после ".", или отдельно, чтобы показать подстановочное соответствие. Например: "loadLibrary. *" или "*" допустим, "*loadLibrary", или "a*b" не допустим.
Следующая таблица приводит все возможные целевые имена RuntimePermission, и для каждого обеспечивает описание того, что разрешение позволяет и обсуждение рисков предоставления кода разрешение.
Целевое Имя разрешения | Что Позволяет Разрешение | Риски Разрешения этого Разрешения |
---|---|---|
createClassLoader | Создание загрузчика класса | Это - чрезвычайно опасное разрешение, чтобы предоставить. Злонамеренные приложения, которые могут инстанцировать их собственных загрузчиков класса, могли тогда загрузить свои собственные классы жулика в систему. Эти недавно загруженные классы могли быть помещены в любой домен защиты загрузчиком класса, таким образом автоматически предоставляя классы полномочия для того домена. |
getClassLoader | Извлечение загрузчика класса (например, загрузчика класса для класса вызова) | Это предоставило бы, что разрешение атакующего получает загрузчик класса для определенного класса. Это опасно, потому что наличие доступа к загрузчику класса класса позволяет атакующему загружать другие классы, доступные тому загрузчику класса. У атакующего обычно иначе не было бы доступа к тем классам. |
setContextClassLoader | Установка загрузчика класса контекста используется потоком | Загрузчик класса контекста используется системным кодом и расширениями, когда они нуждаются к ресурсам поиска, которые не могли бы существовать в системном загрузчике класса. Предоставление setContextClassLoader разрешение позволило бы коду изменяться, какой загрузчик класса контекста используется для определенного потока, включая системные потоки. |
enableContextClassLoaderOverride | Реализация подкласса методов загрузчика класса контекста потока | Загрузчик класса контекста используется системным кодом и расширениями, когда они нуждаются к ресурсам поиска, которые не могли бы существовать в системном загрузчике класса. Предоставление enableContextClassLoaderOverride разрешение позволило бы подклассу Потока переопределять методы, которые используются, чтобы получить или установить загрузчик класса контекста для определенного потока. |
closeClassLoader | Закрытие ClassLoder | Предоставление этого разрешения позволяет коду закрывать любой URLClassLoader, на который у этого есть ссылка. |
setSecurityManager | Установка менеджера безопасности (возможно заменяющий существующий) | Менеджер безопасности является классом, который позволяет приложениям реализовывать политику безопасности. Предоставление setSecurityManager разрешения позволило бы коду изменяться, какой менеджер безопасности используется, устанавливая различное, возможно менее рестриктивный менеджер безопасности, таким образом обходя проверки, которые были бы осуществлены исходным менеджером безопасности. |
createSecurityManager | Создание нового менеджера безопасности | Это предоставляет доступ кода к защищенным, чувствительным методам, которые могут раскрыть информацию о других классах или стеке выполнения. |
getenv. {имя переменной} | Чтение значения указанной переменной окружения | Это позволило бы коду читать значение, или определять существование, определенной переменной окружения. Это опасно, если переменная содержит конфиденциальные данные. |
exitVM. {статус выхода} | Остановка виртуальной машины Java с указанным статусом выхода | Это позволяет атакующему монтировать атаку "отказ в обслуживании", автоматически вынуждая виртуальную машину остановиться. Отметьте: "exitVM. *" разрешение автоматически предоставляют всему коду, загруженному из пути класса приложений, таким образом позволяя приложениям завершить себя. Кроме того, "exitVM" разрешение эквивалентно "exitVM. *". |
shutdownHooks | Регистрация и отмена виртуальной машины завершают работу рычагов | Это позволяет атакующему регистрировать злонамеренный рычаг завершения работы, который вмешивается в чистое завершение работы виртуальной машины. |
setFactory | Установка фабрики сокета, используемой ServerSocket или Сокетом, или потоковой фабрики обработчиков, используется URL | Это позволяет коду устанавливать фактическую реализацию для сокета, сокета сервера, потокового обработчика, или фабрики сокета RMI. Атакующий может установить дефектную реализацию, которая искажает поток данных. |
setIO | Устанавливая System.out, System.in, и System.err | Это позволяет изменять значение стандартных системных потоков. Атакующий может изменить System.in, чтобы контролировать и украсть ввод данных пользователем, или может установить System.err в "нулевой" OutputStream, который скрыл бы любые сообщения об ошибках, отправленные System.err. |
modifyThread | Модификация потоков, например, через вызовы, чтобы Распараллелить interrupt, stop, suspend, resume, setDaemon, setPriority, методы setName И setUncaughtExceptionHandler | Это позволяет атакующему изменять поведение любого потока в системе. |
stopThread | Остановка потоков через звонки в Поток stop метод |
Это позволяет коду останавливать любой поток в системе при условии, что этому уже предоставляют разрешение, чтобы получить доступ к тому потоку. Это изображает из себя угрозу, потому что тот код может повредить систему, уничтожая существующие потоки. |
modifyThreadGroup | модификация групп потока, например, через звонки в ThreadGroup destroy , getParent , resume , setDaemon , setMaxPriority , stop , и suspend методы |
Это позволяет атакующему создавать группы потока и устанавливать их приоритет выполнения. |
getProtectionDomain | Извлечение ProtectionDomain для класса | Это позволяет коду получать информацию о политике для определенного источника кода. В то время как получение информации о политике не ставит под угрозу безопасность системы, это действительно дает дополнительную информацию атакующих, такую как локальные имена файлов например, чтобы лучше нацелить атаку. |
getFileSystemAttributes | Извлечение атрибутов файловой системы | Это позволяет коду получать информацию о файловой системе, такую как использование диска или дисковое пространство, доступное вызывающей стороне. Это потенциально опасно, потому что это раскрывает информацию о системной аппаратной конфигурации и некоторую информацию о полномочии вызывающей стороны записать файлы. |
readFileDescriptor | Чтение дескрипторов файлов | Это позволило бы коду читать определенный файл, связанный с чтением дескриптора файла. Это опасно, если файл содержит конфиденциальные данные. |
writeFileDescriptor | Запись в дескрипторы файлов | Это позволяет коду писать в определенный файл, связанный с дескриптором. Это опасно, потому что это может позволить вредоносному коду прививать вирусы или по крайней мере, заполнить Ваш весь диск. |
loadLibrary. {имя библиотеки} | Динамическое подключение указанной библиотеки | Опасно позволить разрешению апплета загружать собственные библиотеки кода, потому что архитектура безопасности Java не разрабатывается к и не предотвращает злонамеренное поведение на уровне собственного кода. |
accessClassInPackage. {имя пакета} | Доступ к указанному пакету через загрузчик класса loadClass метод, когда тот загрузчик класса вызывает SecurityManager checkPackageAccess метод |
Это предоставляет доступ кода к классам в пакетах, к которым у него обычно нет доступа. Вредоносный код может использовать эти классы, чтобы помочь в его попытке поставить под угрозу безопасность в системе. |
defineClassInPackage. {имя пакета} | Определение классов в указанном пакете, через загрузчик класса defineClass метод, когда тот загрузчик класса вызывает SecurityManager checkPackageDefinition метод. |
Это предоставляет, что разрешение кода определяет класс в определенном пакете. Это опасно, потому что вредоносный код с этим разрешением может определить классы жулика в доверяемых пакетах как java.security или java.lang , например. |
accessDeclaredMembers | Доступ к объявленным элементам класса | Это предоставляет, что разрешение кода запрашивает класс для своей общественности, защищенной, значение по умолчанию (пакет) доступ, и частные поля и/или методы. Хотя у кода был бы доступ к частным и защищенным именам полей и именам методов, это не будет иметь доступа к частным/защищенным полевым данным и не было бы в состоянии вызвать любые закрытые методы. Однако, вредоносный код может использовать эту информацию, чтобы лучше нацелить атаку. Дополнительно, это может вызвать любые открытые методы и/или поля общественности доступа в классе. Это могло быть опасно, если код обычно не будет в состоянии вызвать те методы и/или получить доступ к полям, потому что он не может бросить объект к классу/интерфейсу с теми методами и полями. |
queuePrintJob | Инициирование запроса задания печати | Это могло напечатать уязвимую информацию к принтеру, или просто макулатуру. |
getStackTrace | Извлечение трассировочной информации стека другого потока. | Это позволяет извлечение трассировочной информации стека другого потока. Это могло бы позволить вредоносному коду контролировать выполнение потоков и обнаруживать уязвимости в приложениях. |
setDefaultUncaughtExceptionHandler | Установка обработчика по умолчанию, который будет использоваться, когда поток завершается резко из-за непойманного исключения | Это позволяет атакующему регистрировать злонамеренный непойманный обработчик исключений, который мог вмешаться в завершение потока |
предпочтение | Представляет разрешение, требуемое получить доступ к java.util.prefs. Привилегированный пользователь реализаций или системный корень, который поочередно позволяет операции извлечения или обновления в пределах Предпочтения персистентная внешняя память.) | Это разрешение позволяет пользователю читать из или писать в привилегированную внешнюю память, если у пользователя, выполняющего код, есть достаточные полномочия ОС к чтению-записи к той внешней памяти. Фактическая внешняя память может находиться в пределах традиционного каталога файловой системы или в пределах реестра в зависимости от платформы ОС |
usePolicy | Предоставление этого разрешения отключает безопасность Плагина Java по умолчанию, запрашивающую поведение. | Для получения дополнительной информации обратитесь к руководствам Плагина Java, Основам Безопасности Апплета и usePolicy Разрешению. |
Конструктор и Описание |
---|
RuntimePermission(String name)
Создает новый RuntimePermission с указанным именем.
|
RuntimePermission(String name, String actions)
Создает новый объект RuntimePermission с указанным именем.
|
equals, getActions, hashCode, implies, newPermissionCollection
checkGuard, getName, toString
public RuntimePermission(String name)
name
- имя RuntimePermission.NullPointerException
- если name
null
.IllegalArgumentException
- если name
пусто.public RuntimePermission(String name, String actions)
name
- имя RuntimePermission.actions
- должен быть нуль.NullPointerException
- если name
null
.IllegalArgumentException
- если name
пусто.
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.