- •Понятие информационного ресурса. Ит: определение, способы использования
- •2. Цель, методы и средства создания информационных ресурсов(ир)
- •1. Математические – совокупность моделей разного уровня(от глобальных моделей принятия решения до частных моделей реализации информационных процессов);
- •2. Технические – средства реализации информационных процессов. Сюда входят вычислительные машины и средства на их основе;
- •3. Алгоритмические – алгоритмы реализации математических средств;
- •3. Протоколы tcp/ip применительно к ир
- •4. Сеть, структура сети, маска подсети
- •5. Мосты в сетях tcp/ip. Доменные имена узлов.
- •7. Архитектура «Клиент-сервер»
- •Преимущества
- •Недостатки
- •8. Архитектура Intranet.
- •6. Архитектура mainframe
- •9. Программирование в web: доступ к бд на стороне сервера.
- •10. Программирование в web: доступ к бд на стороне клиента.
- •11. Синтаксис url. Протокол http.
- •12. Передача данных форм. Кодирование в url.
- •13. Стандартный ввод и метод Post.
- •14. Интерфейс Windows cgi. Файлы данных cgi.Интерфейс Windows cgi.
- •15 Файлы данных cgi.
- •15. Обработка результатов на сервере в сети при передаче данных.
- •16. Директивы включения на стороне сервера (ssi).
- •17. Понятие безопасности web-сервера. Принципы безопасности web-сервера.
- •18. Решение вопросов безопасности для web-сервера.
- •19. Характеристики языка Java.
- •20 Байткоды.
- •21 Средства разработки Java.
- •22 Базовая модель Java 1.0.
- •23 Типы данных, переменные и массивы в Java. Преобразование типов в Java. Типы данных
- •Массивы
- •24. Область видимости и время жизни переменных в Java.
- •25. Классы Java. Определение класса в Java. Создание объекта класса.
- •26 Методы Java. Определение методов в Java. Конструкторы Java.
- •27 Перегрузка методов в Java. Перегрузка конструкторов в Java.
- •28 Использование объектов в качестве параметров.
- •29 Использование ключевого слова this
- •30 Механизм финализации в Java. Сбор мусора.
- •31 Апплеты в Java. Характеристики апплетов.
- •32 Структура аплета.
- •33 Тэги апплета.
- •34 Обработка событий апплета, методы апплета.
- •События, генерируемые клавиатурой
- •35 Методы апплетов в Java.
- •36 Модели обработки событий Java 1.0.
- •37 Размещение объектов для графического пользовательского интерфейса. Диспетчера компоновки
- •38 Использование меню. Окна Frame
- •39 Работа с изображениями.
- •40 Динамическая диспетчеризация методов в Java.
- •41 Абстрактные классы в Java.
- •42 Классы Vector и Rectangle.
- •43 Многопоточное программирование в Java.
- •44 Создание потока. Синхронизация потоков в Java
- •45 Классы пакетов java.Io и java.Net.
- •46 Ввод и вывод в Java
- •47 Новые пакеты Java и особенности Java 1.1
- •48 Встроенные классы и интерфейсы в Java
- •49 Классы-члены в Java
- •50 Новый синтаксис для классов-членов
- •51 Локальные классы
- •52 Анонимные классы.
- •53 Модель обработки событий Java 1.1.
- •55. Использование jar-файлов
- •61. Безопасность Ява-программ
- •Защита виртуальной машины Ява. Верификация файлов ява-программ
- •62. Контроль доступа в Ява с использованием технологии «песочницы»
62. Контроль доступа в Ява с использованием технологии «песочницы»
Модель контроля доступа в Ява 1.1 была значительно усовершенствована и, по определению, все программы, реализованные в этой версии, считаются надёжными по определению (это правило распространяется на все последующие версии). Это говорит о том, что процедура верификации в версии 1.1 изменена по сравнению с 1.0 и байт-код не проверяется на уязвимости существующей версии 1.0. Несмотря на это в версии 1.1 разработана технология «песочницы». Она заключается в том, что все программы, загруженные по сети, а также выполняемые локально, выполнятся в ограниченной среде, которую и называют «песочницей». Главная политика песочницы – использование класса java.lang.SecurityManager для запуска всех аплетов как ограниченных в правах пользователей. Перед выполнением операции, на которые накладываются ограничения (к примеру, чтение локального файла), системный код ява-машины вызывает соответствующий метод для данной операции (checkread()) объекта SecurityManager. Если выполняемый код определяется ненадёжным, то генерируется исключение SecurityException, предотвращающее выполнение недопустимой операции.
Классом SecurityManager обычно пользуется браузер с поддержкой Ява, который устанавливает объект этого класса для конкретного браузера, чтобы в нём можно было безопасно запускать аплеты. Соответственно, действия ява-машины с вредоносным кодом в разных браузерах будут различны, но в общем случае на аплеты налагаются следующие ограничения:
аплет не может читать, записывать, переименовывать или удалять файлы. Он не может запрашивать длину или дату последнего изменения файла и даже проверять, существует ли такой файл. Это же правило действует и для каталогов;
аплет не может создавать сетевое соединение или принимать запрос на соединение с другой системой, кроме той, с которой он был загружен. Также он не может использовать привилегированные порты (вплоть до порта 1024 включительно);
аплету не разрешается проводить действия на системном уровне, такие как: загрузка библиотеки, создание нового процесса или принудительный выход из интерпретатора Ява. Аплет не может манипулировать потоками или группами потоков, кроме тех, которые создаёт сам. В Ява 1.1 аплеты не могут использовать Java API для получения информации о членах класса, которые не являются открытыми за исключением тех классов, которые загрузил сам аплет;
аплет не имеет доступа к некоторым графическим функциям и средствам графического интерфейса, к примеру, он не может создать задание для принтера или получить доступ к буферу обмена или очереди сообщений ОС. Помимо этого, все окна, создаваемые аплетом (графические окна в интерпретации ОС), помечаются ОС как небезопасные визуальные индикаторы. Это сделано для того, чтобы аплет не смог обмануть пользователя, приняв вид прикладного приложения.
аплету не разрешается чтение некоторых системных свойств, в первую очередь, данных об ОС и файловой системе, которые могут быть использованы злонамеренно;
аплет никогда не сможет обойти перечисленные ограничения, зарегистрировав новый объект SecutiryManager
Предположим, что аплет, выполняемый в безопасной среде, предпринимает попытку чтения из файла file1, передав имя этого файла конструктору FileInputStream(). По определению, данный класс получает доступ к системному ресурсу (файлу file1), поэтому при использовании этого класса необходим контроль доступа. Для этого существует перегруженный конструктор, который использует класс SecurityManager. При каждом вызове данного конструктора проверяется, установлен ли в системе объект SecutiryManager, является ли он единственным для виртуальной машины Ява и работает ли он в фоновом режиме для проверки аплетов. Если да, то конструктор FileInputStream вызывает метод checkread() объекта securityManager, передав в него в качестве параметра имя файла. Метод checkread() не возвращает значения и либо он нормально завершает свою работу, либо генерирует исключение SecurityException. Если выполняется возврат из этого метода, то конструктор fileInputStream производит необходимую инициализацию и завершает свою работу. В противном случае исключение передаётся вызывающему методу. Если это происходит, объект класса fileInputStream не создаётся и аплет не получает доступ к файлу.
Неудобство при этом для разработчика аплета заключается в том, что данные действия виртуальная ява-машина совершает невизуально и бывает трудно выяснить, по какой причине не получен доступ к файлу.
В ява 1.1 появляется возможность работы с ЦП ява-файлов. Для этого пакет javaSecurity расширяется подпакетом Passkey(), который предоставляет классы и интерфейсы для создания ЦП и её проверки. При работе с ява-файлами, снабжёнными ЦП, работа организуется следующим образом:
- файл класса, в котором содержится ЦП, прошедший проверку в ява-машине, считается надёжным и при запуске такой проги ей полностью предоставляется javaAPI. В данный пакет также входит возможность работы с ключами и цифровыми подписями для jar-файлов. Но следует помнить, что данный класс не отменяет технологии песочницы.
class Policy. Данный класс определяет политику безопасности ява в целом. Объект данного класса в своей работе связывает объекты CodeSource (создаваемый при доступе к системным ресурсам) с объектом Permission.
Ява-апплет получает инфу о URI файла класса и список источников, поставивших на данный файл свою ЦП. Permission определяет права доступа, предоставляемые объекту CodeSource, загружаемому из конкретного источника.
В java.io добавлен пакет FilePermission, а в java.net добавлен SocketPermission.
