Spec-Zone .ru
спецификации, руководства, описания, API
|
public final class RuntimePermission extends BasicPermission
Целевое имя является именем разрешения времени выполнения (см. ниже). Соглашение о присвоении имен следует за иерархическим соглашением о присвоении имен свойства. Кроме того, звездочка может появиться в конце имени, после ".", или отдельно, чтобы показать подстановочное соответствие. Например: "loadLibrary. *" и "*" показывают подстановочное соответствие, в то время как "*loadLibrary" и "a*b" не делают.
Следующая таблица приводит все возможные целевые имена RuntimePermission, и для каждого обеспечивает описание того, что разрешение позволяет и обсуждение рисков предоставления кода разрешение.
Целевое Имя разрешения | Что Позволяет Разрешение | Риски Разрешения этого Разрешения |
---|---|---|
createClassLoader | Создание загрузчика class | Это - чрезвычайно опасное разрешение, чтобы предоставить. Злонамеренные приложения, которые могут инстанцировать их собственных загрузчиков class, могли тогда загрузить свои собственные классы жулика в систему. Эти недавно загруженные классы могли быть помещены в любой домен защиты загрузчиком class, таким образом автоматически предоставляя классы полномочия для того домена. |
getClassLoader | Извлечение загрузчика class (например, загрузчика class для вызова class) | Это предоставило бы, что разрешение атакующего получает загрузчик class для определенного class. Это опасно, потому что наличие доступа к загрузчику class class позволяет атакующему загружать другие классы, доступные тому загрузчику class. У атакующего обычно иначе не было бы доступа к тем классам. |
setContextClassLoader | Установка контекста загрузчик class используется потоком | Загрузчик class контекста используется системным кодом и расширениями, когда они нуждаются к ресурсам поиска, которые не могли бы существовать в системе загрузчик class. Предоставление setContextClassLoader разрешение позволило бы коду изменяться, какой контекст загрузчик class используется для определенного потока, включая системные потоки. |
enableContextClassLoaderOverride | Реализация подкласса контекста потока методы загрузчика class | Загрузчик class контекста используется системным кодом и расширениями, когда они нуждаются к ресурсам поиска, которые не могли бы существовать в системе загрузчик class. Предоставление enableContextClassLoaderOverride разрешение позволило бы подклассу Потока переопределять методы, которые используются, чтобы получить или установить контекст загрузчик class для определенного потока. |
closeClassLoader | Закрытие ClassLoder | Предоставление этого разрешения позволяет коду закрывать любой URLClassLoader, на который у этого есть ссылка. |
setSecurityManager | Установка менеджера безопасности (возможно заменяющий существующий) | Менеджером безопасности является class, который позволяет приложениям реализовывать политику безопасности. Предоставление setSecurityManager разрешения позволило бы коду изменяться, какой менеджер безопасности используется, устанавливая различное, возможно менее рестриктивный менеджер безопасности, таким образом обходя проверки, которые были бы осуществлены исходным менеджером безопасности. |
createSecurityManager | Создание нового менеджера безопасности | Это предоставляет доступ кода к защищенным, чувствительным методам, которые могут раскрыть информацию о других классах или стеке выполнения. |
getenv. {имя переменной} | Чтение значения указанной переменной окружения | Это позволило бы коду читать значение, или определять существование, определенной переменной окружения. Это опасно, если переменная содержит конфиденциальные данные. |
exitVM. {статус выхода} | Остановка виртуальной машины Java с указанным статусом выхода | Это позволяет атакующему монтировать атаку "отказ в обслуживании", автоматически вынуждая виртуальную машину остановиться. Отметьте: "exitVM. *" разрешение автоматически предоставляют всему коду, загруженному из приложения путь class, таким образом позволяя приложениям завершить себя. Кроме того, "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 для class | Это позволяет коду получать информацию о политике для определенного источника кода. В то время как получение информации о политике не ставит под угрозу безопасность системы, это действительно дает дополнительную информацию атакующих, такую как локальные имена файлов например, чтобы лучше нацелить атаку. |
getFileSystemAttributes | Извлечение атрибутов файловой системы | Это позволяет коду получать информацию о файловой системе, такую как использование диска или дисковое пространство, доступное вызывающей стороне. Это потенциально опасно, потому что это раскрывает информацию о системной аппаратной конфигурации и некоторую информацию о полномочии вызывающей стороны записать файлы. |
readFileDescriptor | Чтение дескрипторов файлов | Это позволило бы коду читать определенный файл, связанный с чтением дескриптора файла. Это опасно, если файл содержит конфиденциальные данные. |
writeFileDescriptor | Запись в дескрипторы файлов | Это позволяет коду писать в определенный файл, связанный с дескриптором. Это опасно, потому что это может позволить вредоносному коду прививать вирусы или по крайней мере, заполнить Ваш весь диск. |
loadLibrary. {имя библиотеки} | Динамическое подключение указанной библиотеки | Опасно позволить разрешению апплета загружать библиотеки собственного кода, потому что архитектура безопасности Java не разрабатывается к и не предотвращает злонамеренное поведение на уровне собственного кода. |
accessClassInPackage. {имя пакета} | Доступ к указанному пакету через загрузчик class loadClass метод, когда, что загрузчик class вызывает SecurityManager checkPackageAccess метод |
Это предоставляет доступ кода к классам в пакетах, к которым у него обычно нет доступа. Вредоносный код может использовать эти классы, чтобы помочь в его попытке поставить под угрозу безопасность в системе. |
defineClassInPackage. {имя пакета} | Определение классов в указанном пакете, через загрузчик class defineClass метод, когда, что загрузчик class вызывает SecurityManager checkPackageDefinition метод. |
Это предоставляет, что разрешение кода определяет class в определенном пакете. Это опасно, потому что вредоносный код с этим разрешением может определить классы жулика в доверяемых пакетах как java.security или java.lang , например. |
accessDeclaredMembers | Доступ к объявленным элементам class | Это предоставляет, что разрешение кода запрашивает class для своей общественности, защищенной, значение по умолчанию (пакет) доступ, и частные поля и/или методы. Хотя у кода был бы доступ к частным и защищенным именам полей и именам методов, это не будет иметь доступа к частным/защищенным полевым данным и не было бы в состоянии вызвать любые закрытые методы. Однако, вредоносный код может использовать эту информацию, чтобы лучше нацелить атаку. Дополнительно, это может вызвать любые открытые методы и/или поля общественности доступа в class. Это могло быть опасно, если код обычно не будет в состоянии вызвать те методы и/или получить доступ к полям, потому что он не может бросить объект к class / интерфейс с теми методами и полями. |
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 и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92