Иллюстрированный самоучитель по Java

Защита от апплета


Браузер может вообще отказаться от загрузки апплетов. В Netscape Communicator это делается с помощью флажка Enable Java в окне, вызываемом командой Edit | Preferences | Advanced, в Internet Explorer — в окне после выбора команды Tools | Internet Options | Security. В таком случае говорить в этой книге больше не о чем.

Если браузер загружает апплет, то создает ему ограничения, так называемую

"песочницу"

(sandbox), в которой резвится апплет, но выйти из которой не может. Каждый браузер создает свои ограничения, но обычно они заключаются в том, что апплет:

не может обращаться к файловой системе машины, на которой он выполняется, даже для чтения файлов или просмотра каталогов;

может связаться по сети только с тем сайтом, с которого он был загружен;

не может прочитать системные свойства, как это делает, например, приложение в листинге 6.4;

не может печатать на принтере, подключенном к тому компьютеру, на котором он выполняется;

не может воспользоваться буфером обмена (clipboard); не может запустить приложение методом ехес ();

не может использовать "родные" методы или загрузить библиотеку методом load ();

не может остановить JVM методом exit ();

не может создавать классы в пакетах java.*, а классы пакетов sun.* не может даже загружать.

Браузеры могут усилить или ослабить эти ограничения, например, разрешить локальным апплетам, загруженным с той же машины, где они выполняются, доступ к файловой системе. Наименьшие ограничения имеют

доверенные

(trusted) апплеты, снабженные электронной подписью с помощью Классов ИЗ пакетов java.security.*.

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

Каждый браузер расширяет класс SecurityManager по-своему, устанавливая те или иные ограничения. Единственный экземпляр этого класса создается при запуске JVM в браузере и не может быть изменен.



Содержание раздела