Практические (семинарские) занятия. Практические (семинарские) занятия по дисциплине «Методы и средства защиты компьютерной информации» учебным планом не предусмотрены
Практические (семинарские) занятия по дисциплине «Методы и средства защиты компьютерной информации» учебным планом не предусмотрены.
Лабораторные занятия
Для представления программы лабораторных работ может быть использована форма табл. 5.
Таблица 5
Лабораторные работы
Номер лаб. работы | Наименование лабораторной работы | Номер раздела, тема дисциплины | Формы контроля выполнения работы | Объем в часах | |
Ауди-торных | СРС | ||||
Организация локальной сети в системе моделирования iplab | Раздел 2. Тема 2.3. | Отчёт, Демонстрация программы | |||
Разработка интерактивных Web-страниц с помощью технологии CGI-расширений WEB-сервера | Раздел 2. Тема 2.4. | Отчёт, Демонстрация программы | |||
Программирование на JavaScript | Раздел 2. Тема 2.6. | Отчёт, Демонстрация программы | |||
Разработка клиент-серверного приложения на базе сокетов | Раздел 4. Тема 4.1. | Отчёт, Демонстрация программы | |||
Создание подсети на базе оборудования CISCO | Раздел 4. Тема 4.2. | Отчёт, Демонстрация программы | |||
Настройка таблицы маршрутизации для CISCO | Раздел 4. Тема 4.2. | Отчёт, Демонстрация программы |
Курсовой проект (работа)
Задание
Задание на курсовую работу является типовым и ставит своей целью закрепление теоретического материала изученного на лекциях и на лабораторных занятиях. Задание на курсовую работу может быть индивидуальным, для этого необходимо представить в письменном виде индивидуальное техническое задание, заранее согласованное с преподавателем. Содержание работы, выполняемой по индивидуальному графику должно содержать работу с удаленной базой данных средствами www и по сложности соответствовать типовому заданию, которое построено на реализации функциональных типовых блоков, перечисленных ниже.
Функциональные типовые блоки, из которых строится типовая курсовая работа:
- Организация доступа к БД средствами Web-интерфейса
- Механизм обмена данными между Web-страницами (методы GET и POST, использование механизма сессий, использование Cookies)
- Использование технологии ООП на PHP
- Поиск информации в БД по введенному ключевому слову или фразе
- Разграничение доступа к ресурсам
- Генерация HTML страниц из БД
- Механизм регистрации пользователей
- Аутентификация пользователей
- Организация учета количества посещений
- Механизм определения источника запроса к странице
- Проверка правильности ввода данных
- Представление графической информации (построение графиков и диаграмм)
- Конвертация данных в rtf формат
- Реализация подсистемы голосования
- Реализация download-подсистемы
- Автоматическое ведение новостной линии
- Организация гостевой книги
Описание функциональных блоков
- Организация доступа к БД средствами Web-интерфейса
Основной частью курсовой работы является изучение механизмов доступа к базам данных средствами Web-интерфейса. Такой механизм должен предоставлять возможность чтения и модификации данных в форме удобной для конечного пользователя, при этом особое внимание уделяется поддержке целостности БД и корректности выполняемых пользователем действий. То есть для таблиц с отношением master-detail необходимо:
- При удалении записи из таблицы master обеспечивать удаление всех "дочерних" записей, либо выводить сообщение о том, что такое удаление невозможно, пока существуют записи в detail ссылающиеся на таблицу master
- При добавлении новой записи в таблицу detail осуществлять проверку наличия объекта, на который ссылается добавляемая запись в таблице master. То же самое при редактировании.
- Осуществлять проверку дублирования ключевых полей и корректно обрабатывать такие ситуации.
*Для возможности дальнейшего масштабирования и переносимости системы с одного сервера БД на другой желательно логику работы с БД сделать независимой от конкретного сервера БД. Этого можно достичь, используя технологию ООП на PHP.
- Механизм обмена данными между Web-страницами (методы GET и POST, использование механизма сессий, использование Cookies)
Обмен данными между Web-страницами также является ключевым моментом, поскольку без него теряется смысл работы любой КС. Обмен данными подразумевает передачу различной информации между отдельными страницами Web-ресурса или реализацию механизмов активности на странице (поиск информации, запись информации в БД, голосование, аутентификация и т.п.).
Для реализации такого механизма можно использовать один из нескольких подходов - методы GET и POST, использование механизма сессий, использование Cookies или совокупность нескольких подходов одновременно. При этом должна быть четкая аргументация выбора того или иного способа передачи данных.
Обязательным является использование механизма сессий при организации авторизации доступа и разграничения доступа к ресурсам.
Необходимость использование механизма Cookies определяется в зависимости от конкретного варианта задания, где явно указано что нужно использовать работу с Cookies.
- Использование технологии ООП на PHP
О преимуществах использования объектно-ориентированного программирования (ООП), особенно для построения корпоративных систем, можно и не говорить. Эта технология как нельзя лучше обеспечивает возможность построения независимой, легко переносимой и настраиваемой системы. PHP позволяет использовать классы и объекты, сохраняя всю мощь ООП.
- Поиск информации в БД по введенному ключевому слову или фразе
Поиск информации - типичная операция для КИС, которые работают с БД. Поиск должен осуществляться по полям таблиц БД (в зависимости от варианта задания) с возможностью использования символов подстановки: "*" и "?", где "*" - произвольное количество любых символов в любой позиции строки поиска, "?" - один любой символ в произвольной позиции. Формат данных, выдаваемых в качестве результата поиска, определяется вариантом задания.
- Разграничение доступа к ресурсам
Под разграничением доступа к ресурсам понимается использование некоторых ролей, например "Пользователь" и "Администратор". Роль определяется с помощью процедуры аутентификации пользователя, которая производится в начале работы с системы. То есть в зависимости от роли пользователя, система может вести себя по-разному предоставляя различный доступ (только чтение, модификация, удаление) с разным ресурсам (таблицам БД, страницам, формам и т.п.).
- Генерация HTML страниц из БД
Содержание некоторых страниц и форм запроса часто представляет собой совокупность однотипных элементов, состав которых может интенсивно изменяться. Это справедливо для систем голосования (состав вопросов может меняться), форм заполнения анкетных данных (может меняться количество, тип полей, признак обязательности заполнения, значения устанавливаемые "По-умолчанию"), форм отчетов и т.п. Поэтому имеет смысл хранить структуру таких страниц в БД, где описывается вся необходимая информация и составе страницы. При обращении пользователя к этой странице PHP скрипт обращается к БД, извлекает структуру и динамически формирует такую страницу. Поэтому часто такие страницы называют динамическими. Для изменения состава страниц необходимо просто изменить поля таблицы БД. Для всех вариантов должна осуществляться возможность генерации таких страниц в следующих случаях:
- Форма регистрации нового пользователя. Форма изначально содержит элементы:
- Логин - обязательное текстовое поле
- Пароль - обязательное текстовое поле с маскировкой вводимых символов
- Фамилия - обязательное текстовое поле
- Имя - обязательное текстовое поле
- Отчество - необязательное текстовое поле
- Пол - поле типа RadioButton, по умолчанию пол мужской
- Возраст - выпадающий список, по умолчанию значение 20
- Город - текстовое поле, по умолчанию "Ульяновск"
- Страна - выпадающий список, по умолчанию "Россия", названия стран из таблицы БД
- Кнопка "Отменить" - закрывает окно формы, отменяя все введенные данные
- Кнопка "Зарегистрировать" - проверяет корректность введенной информации и в случае успеха помещает информацию о пользователе в БД.
- Подсистема голосования содержит несколько вопросов, на которые должен отвечать пользователь. Типы ответов могут быть оформлены в виде:
- Выбора значений "Да", "Нет"
- Выбора значения из списка
- Ввода текстовой информации
- Подсистема download позволяет производить авторизацию пользователя при обращении его к какому-либо ресурсу. То есть если пользователь хочет забрать ресурс, то ему необходимо заполнить анкету, которая содержит следующие элементы:
- Фамилия - обязательное текстовое поле
- Имя - обязательное текстовое поле
- Отчество - необязательное текстовое поле
- Город - текстовое поле, по умолчанию "Ульяновск"
- Страна - выпадающий список, по умолчанию "Россия", названия стран из таблицы БД
- E-mail - адрес электронной почты пользователя, необязательное поле
- Цель - цель использования запрашиваемого ресурса (список значений из БД)
- Примечание - необязательное многострочное текстовое поле
Такие окна диалога с пользователем обычно вызываются в модальном режиме и с отсутствием таких элементов как полосы прокрутки, адресная строка, панель инструментов и отсутствием возможности изменения размеров окна.
*Желательно предусмотреть возможность автоматического определения размеров и местоположения элементов в зависимости от разрешающей способности экрана установленной на машине клиента.
- Механизм регистрации пользователей
Система регистрации пользователей предусматривает возможность учета постоянных пользователей системы с помощью процедуры прохождения регистрации, которая осуществляется путем заполнения специальной анкеты пользователя, где указываются учетные данные, главными из которых являются логин и пароль пользователя.
Регистрация пользователя может осуществляться в любое время, не обязательно перед началом работы. Для этого на любой странице ресурса должен присутствовать активный элемент "Зарегистрироваться" оформленный в виде ссылки или кнопки. После перехода по этой ссылке появляется диалоговое окно с анкетой (содержание анкеты генерируется динамически), после корректного заполнения полей которого информация о новом пользователе добавляется в БД пользователей.
Под корректностью понимается механизм проверки существования пользователя с таким логином, для обеспечения уникальности, требование заполнения всех обязательных полей, правильность выбора логина (только английские буквы и цифры, причем первой должна идти буква) и правильность выбора пароля (длина не менее 6 символов и не более 15 символов).
После того, как пользователь прошел регистрацию, надпись "Зарегистрироваться" должна смениться на <имя пользователя> или <логин>, при активизации которого выдается информация о текущем пользователе (информация берется из анкеты, которую пользователь заполняет при регистрации).
- Аутентификация пользователей
Аутентификация пользователей подразумевает ввод логина и пароля для зарегистрированных пользователей или для администратора. Также как и для механизма регистрации, авторизированный вход в систему может быть доступен в любой момент, с любой страницы ресурса. Для этого должен присутствовать активный элемент "Вход в систему", после выбора которого появляется окно запроса логина и пароля пользователя и определяются его полномочия. Активный элемент при этом меняется на "Выход из системы".
- Организация учета количества посещений
Подсчет количества посещений Web-ресурса - это эффективный механизм обратной связи для получения достоверной информации о том насколько востребованным является ваш ресурс.
В рамках курсового проекта необходимо организовать подсчет использования каждой статической страницы ресурса. Для этого на страницу встраивается специальный скрипт, который выполняется при каждом обращении к странице и увеличивает значение некоторой переменной, хранящейся в БД.
Однако такой подсчет является неточным, поскольку он не учитывает уникальности посещений и переходы между страницами с использованием средств навигации браузера. Для того чтобы снять эту погрешность обычно используются методы определения источника запроса к странице, которые позволяют получить информацию о том, откуда "пришел" пользователь.
- Механизм определения источника запроса к странице
Как уже было сказано выше, проблема определения источника запроса к странице достаточно актуальна. Информация об источнике запроса позволяет реализовать механизм подсчета таким образом, чтобы исключить кольцевые хождения по сайту и считать только те обращения, которые осуществлялись извне. Часто такую информацию используют для определения географического расположения потенциальных пользователей, основываясь на доменных суффиксах первого уровня (ru, gb, fra, uk и т.п.). В курсовом проекте необходимо использовать такой механизм для определения источника запроса и помещения этой информации в БД, наряду со счетчиком количества посещений.
- Проверка правильности ввода данных
Корректность введенных данных является залогом надежности функционирования всей системы. Именно ошибки, допущенные на этапе ввода данных, приводят к катастрофическим последствиям. Поэтому необходимо организовать проверку корректности ввода данных для каждой диалоговой формы.
- Для числовых данных:
- Проверка допустимого диапазона
- Проверка наличия "нецифровых" символов в строке
- Для текстовых полей:
- Проверка на максимальную длину вводимой строки
- Проверка на нулевую длину
- Для полей ввода e-mail:
- Проверка на правильность ввода
Для контроля правильности входных даны разрешается использовать любые средства PHP или JavaScript.
- Представление графической информации (построение графиков и диаграмм)
Для наглядности статистических данных часто прибегают к построению различного рода диаграмм. Скрипт, который может динамически создавать диаграмму на основе данных очень удобен для ведения статистики на Вашем сайте.
- Конвертация данных в rtf формат
Конвертация данных в формат rtf - замечательная возможность для обеспечения совместимости Internet-ресурса с офисными системами обработки и хранения документации. Любой отчет, формируемый средствами HTML достаточно сложно распечатать, разбить на несколько страниц или просто сохранить в доступном для дальнейшей работы формате. Выходом из сложившейся ситуации является автоматический перевод (конвертация) HTML документа в rtf (Rich Text Format) формат. Выбор этого формата обусловлен его распространенностью и поддержкой большинством текстовых редакторов. Структура этого формата достаточно проста (в отличие от doc и pdf), что позволяет строить средства автоматизации перевода (конверторы) даже на языке PHP. В рамках курсовой работы предполагается построение конвертора в rtf формат для указанной в варианте задания страницы.
- Реализация подсистемы голосования
Подсистема голосования - достаточно популярный механизм определения рейтинга Вашего ресурса (или отдельной его части). Этот механизм реализуется достаточно просто в виде анкеты, в которой пользователю нужно выбрать один или несколько вариантов ответов.
Для того чтобы предусмотреть возможность быстро менять состав вопросов и варианты ответов в системе голосования, логично хранить эту информацию в БД и динамически генерировать список вопросов по необходимости (Генерация HTML страниц из БД). Ответы на вопросы также помещаются в БД и каждый раз при выводе анкеты голосования указывается статистика предыдущих ответов.
- Реализация download-подсистемы
Download-подсистема - это функциональность, которая позволяет точно фиксировать использование какого-то ресурса путем заполнения специальной формы с данными о пользователе. Обычно такая система реализуется в виде ссылки "Скачать" или "Download", при выборе которой пользователю предлагается заполнить анкету с полями приведенными в разделе Генерация HTML страниц из БД. Если все поля заполнены корректно, то информация о пользователе передается в БД и ему предоставляется возможность доступа к информационному ресурсу.
Популярность такого механизма обусловлена развитием электронной коммерции, где для получения определенной информации необходимо платить или для возможности знать где, кем и зачем используется ваш ресурс.
- Автоматическое ведение новостной линии
Новостная линия призвана отражать жизнь ресурса и показывать наиболее значимые события. Однако, как показывает опыт, часто новостная линия не ведется, поскольку пропадает интерес авторов к самому ресурсу или просто не хватает времени для добавления новостей. Это приводит к тому, что ресурс теряет жизнеспособность, становится "мертвым" и интересным для пользователей.
Чтобы избежать этой тупиковой ситуации можно предложить автоматическую генерацию новостей, как отклик на какое-то событие в системе. Например, добавился новый ресурс, в новостной линии автоматически добавляется строка со ссылкой на новый ресурс и пояснительным текстом.
Новостная линия с точки зрения программиста - это выбор из БД последних N новостей (где N - количество одновременно отображаемых последних событий) и вывод их на экран в удобной для пользователя форме.
Список событий, на которые производится "отклик" новостной линией определяется конкретным вариантом задания.
- Организация гостевой книги
Для организации обратной связи с авторами ресурса часто используется гостевая книга, которая позволяет всем желающим оставить свои замечания, пожелания или просьбы к авторам. Для этого реализуется отдельная страница, на которой пользователь может оставить текстовое сообщение и свои координаты.
* Для повышения эффективности работы гостевой книги необходимо реализовать возможность отправки на e-mail автора сообщения о поступлении нового отзыва в гостевой книге.
В рамках курсовой работы использование гостевой книги необходимо для проверки промежуточных этапов выполнения и финального проекта преподавателем. Для этого в качестве примера будет реализована гостевая книга, через которую все желающие могут задавать вопросы и оставлять свои координаты для получения ответов.