Собственный интерфейс Java и безопасность - PullRequest
1 голос
/ 24 августа 2009

Есть ли вероятность нарушения политики безопасности Java через нативный интерфейс Java. Какие основные области мы должны использовать JNI

Ответы [ 2 ]

4 голосов
/ 24 августа 2009

Политики безопасности Java просто не применяются к собственному коду, вызываемому через JNI, поэтому очевидно, что нативный код может нарушать их по желанию.

Что касается того, для чего мы использовали JNI, то сегодня мы в основном вызываем API-интерфейсы для конкретной ОС или взаимодействуем с существующим не-Java кодом. Раньше причиной часто упоминалось повышение производительности, но, учитывая современное состояние виртуальных машин и JIT-компиляторов, это почти никогда не имеет смысла.

1 голос
/ 24 августа 2009

Да, когда вы вызываете нативный код через JNI, он может делать практически все, что может делать текущий пользователь - например, удалите все их файлы. Система Java не может контролировать все, что делает нативный код.

У вас нет , чтобы использовать JNI для чего-либо - это обычно используется, например, для низкоуровневый доступ (например, обработка критических ошибок для съемного диска) или доступ к API C, который не имеет эквивалента чисто Java.

...