Общий вопрос безопасности Java DLL - PullRequest
0 голосов
/ 18 ноября 2009

Я понимаю, что Java может загружать / выполнять код DLL, но мне интересно, есть ли какие-либо проверки безопасности, чтобы предотвратить вызов ненадежного кода из системы JVM. Разве это не может разрушить систему - существуют ли какие-либо функции ОС, которые предотвращают это? Или кто-то может просто написать в самой Java какой-то метод, который предотвращает загрузку ненадежного кода? Спасибо за вашу помощь.

Ответы [ 2 ]

3 голосов
/ 18 ноября 2009

Нет. Как только вы вызываете нативный код (через JNI), этот нативный код может делать все что угодно (при условии, что сама ОС дает разрешение). Нет никакой концепции песочницы нативного кода, вызываемого из JVM.

Обратите внимание, что это особая головная боль с кодом JNI. Плохо закодированный собственный код может отключить JVM (в отличие от простого исключения), и последующая отладка / разрешение особенно трудны.

1 голос
/ 18 ноября 2009

Загрузка собственного кода может быть предотвращена. Как правило, например апплеты запускают такой контекст безопасности, что не могут загружать собственные библиотеки. Однако, если JVM позволяет вашему коду Java вызывать ненадежный собственный код, все ставки отключены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...