..
С момента своего появления, Java зарезервировал важную роль в вопросах безопасности. Хотя с переменным успехом, дизайнеры стремились обеспечить платформу безопасности систем, внедренных непосредственно в терминах языка, доступных разработчикам.
В непрерывном процессе эволюции и уточнение JVM стал одним из наиболее важных объектов инфраструктуры для автономных, веб, мобильные и более, в этой статье мы сосредоточимся на эволюции модели безопасности, обычно называемой песочнице, комментируя проектных ошибок и текущего состояния.
Эта статья адресована всем, будь то опытный Java-программистов, которые постятся полностью читателей тему. Некоторые соображения будут более понятны для тех, кто уже имеют некоторый опыт работы с этим языком, тем не менее, чтение этой статьи подходит для любого читателя.
Оригинальная модель, известная как песочница была разработана, чтобы ограничить потенциально вредоносного кода в изолированной среде, и в высшей степени ограничительный характер. Java с момента ее рождения, было сильно ориентирована на сети и это соображение привело к разработке модели исполнения, в которой код был скачан непосредственно с пульта дистанционного управления, подвергая клиентов на важные вопросы безопасности.
В своей первой реализации, схематически изображен на рисунке, песочницы лишь грубо различать локальный и удаленный код код: первый наслаждался полный доступ ко всем ресурсам, "критических" системы, такие как, например, файловых систем и различные устройства, код удаленного Напротив, имели ограниченный доступ к ресурсам, при посредничестве той же песочнице: апплеты, теперь практически исчезли из Интернета, я был самым известным примером.

Эта модель включает в себя набор механизмов безопасности на разных уровнях.
Прежде всего, Java является типизированным, то есть имеется явная связь между переменной и контролируется и его тип (целое, с плавающей точкой, строки, и т.д. ..).
Те, кто запрограммирован на языках, с низкой / среднего уровня, таких как C и C + + знает, сколько проблем можно избежать этого контроля: набор неявных преобразований между типами, такими как целое число или логическое недействительными указатели на другие указатели, которые характерны для тех языков, в то же время стать основным источником ошибок программирования, в равной степени привержены как начинающих, так и экспертов.
Чтобы свести к минимуму возможность того, что события сделали ошибки, дизайнеры ВС внес некоторые аспекты до сих пор найдены только в нише и на университетском уровне языков, таких как, например, автоматическое управление памятью (сбор мусора) и управления во время выполнения доступа к памяти (указатели, элементы массива и т.д. ...).
Второй уровень защиты обеспечивается компилятора и времени выполнения, в виртуальной машине. Это гарантирует, что байт-код, ассемблер из Java VM выполнена с надлежащим разрешения на выполнение. В частности, два ключевых компонента, SecurityManager и ClassLoader, определяют локальное пространство имен, чтобы избежать интерференции между различными экземплярами VM и управления контролем доступа к важнейшим ресурсам.
Модель, представленная является очень гибкой и в первом обновление JDK (версия 1.1) была представлена концепция доверенного кода для удаленных приложений, если они сопровождаются электронной подписи признаны клиента, доступ к ресурсам системы. Решения, изложенные в следующем рисунке, является не более чем взломать прошлого архитектура и поэтому требуют полностью переписанный в следующих релизах.

| |
Электронная торговля с ASP (книгу)
Электронной коммерции и корзина с ASP. Только 35 €. |
| |
Linux (курс)
Полное руководство по открытым исходным кодом системы. От 49 €. |
| |
Расширенный веб-мастеров (курс)
Станьте профессиональным веб-мастером. С 39 €. |