Диплом: Разработка программного обеспечения для повышения эффективности защиты веб-приложения от XSS-атак

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
42
Поскольку используется каноническая стратегия создания проекта
автоматизации, включающая в себя ручное оригинальное проектирование и
реконструкцию, то в качестве инструментального ПО выступает язык
программирования высокого уровня, позволяющий генерировать экранные
формы документов, а также организует работу с БД.
Сегодня широко применяются языки программирования высокого
уровня, такие как: Delphi, C++, Pascal, а также СУБД на базе SQL, QBE.
Подбор языка программирования основывается на выборе типа применяемой
БД.
Созданы языки манипулирования данными, дающие возможность
реализовать все операции реляционной алгебры и почти все их сочетания.
Среди них наиболее распространены SQL (структурированный язык
запросов) и QBE (запросы по образцу). Эти языки относятся к языкам
высокого уровня, благодаря которым пользователь определяет, какие данные
нужно получить, не уточняя методику их получения.
Одним из главных достоинств встроенных БД можно назвать то, что
есть возможность хранить логически сгруппированные данные в различных
таблицах и отражать связи между ними, объединяя единую базу. Для задания
связи таблицы имеют поля с идентичными именами или хотя бы с
идентичными форматами данных. Связь между таблицами указывает
отношения между равными значениями в этих полях. При использовании
такой организации данных можно уменьшить избыточность хранимых
данных, упростить их ввод и реализацию запросов и отчетов.
Выбор системы управления баз данных (СУБД) включает в себя
довольно трудную многопараметрическую задачу и становится одним из
самых значимых этапов в процессе разработки приложений БД.
Определенный программный продукт должен соответствовать как текущим,
43
так и будущим потребностям компании. Выделим для рассмотрения
несколько СУБД: SQL Anywhere, Oracle, SQLBase, InterBase.
Sybase SQL Anywhere Studio — многофункциональный программный
пакет, который обеспечивает управление и синхронизацию данных
предприятия, позволяет быстро разрабатывать и внедрять решения в области
баз данных для мобильных вычислений и рабочих групп.
Современная СУБД Oracle — это мощный программный комплекс,
позволяющий создавать приложения любой степени сложности. Ядром этого
комплекса является база данных, хранящая информацию, количество которой
за счет предоставляемых средств масштабирования практически
безгранично. C высокой эффективностью работать с этой информацией
одновременно может практически любое количество пользователей (при
наличии достаточных аппаратных ресурсов), не проявляя тенденции к
снижению производительности системы при резком увеличении их числа.
SQLBase — это реляционная многопользовательская СУБД типа
клиент-сервер фирмы Gupta Corporation (Menlo Park, USA). Она
предназначена для использования в качестве сервера баз данных в локальных
вычислительных сетях на базе персональных компьютеров. SQLBase
ориентирована, прежде всего, на сети масштаба малого и среднего
предприятия с количеством одновременно обращающихся к СУБД рабочих
станций от 20 до 100, а также на подразделения (филиалы, отделения)
крупных организаций. В целом СУБД такого класса называют серверами для
рабочих групп (Workgroup Server). SQLBase поддерживает базы данных
размером до 4 Гбайт в виде консолидированного файла и до 512 Гбайт в
разделенном режиме (partitioned database mode).
InterBase — это система управления реляционными базами данных,
поставляемая корпорацией BORLAND, для построения приложений с
архитектурой клиент-сервер произвольного масштаба: от сетевой среды
44
небольшой рабочей группы с сервером под управлением Novell NetWare или
Windows NT на базе IBM PC до информационных систем крупного
предприятия на базе серверов IBM, Hewlett-Packard, SUN и т.п.
В выпускной квалификационной работы используются:
- Язык программирования высокого уровня Borland Delphi 7
- Структурированный язык запросов SQL, который может
использоваться совместно с Borland Delphi 7 для организации работы на базе
разрабатываемой ИС и СУБД MS Access.
Приложение реализует автоматизированный поиск XSS-уязвимостей
сайтов с последующим выводом результатов поиска в виде отчета с выдачей
рекомендаций.
Приложение разработано в Embarcadero RAD Studio XE2 на языке
Delphi. Для обращения к web-приложениям были использованы стандартные
средства среды разработки, такие как: компонент «TWebBrowse»
(использующий функциональность Microsoft Internet Explorer, который
поставляется вместе с Windows и не требует установки и настройки
дополнительных программных средств, что делает его более выгодным на
фоне его аналогов) и библиотеки MSHTML.
3.2 Структура базы данных и основные алгоритмы работы
Рассмотрим, сравним и выберем СУБД из следующих: Paradox, MySQL
и Microsoft Access.
Paradoxбыл разработан компанией AnsaSoftware, и первая его версия
увидела свет в 1985 году. Этот продукт был впоследствии приобретен
компанией Borland. С июля 1996 года он принадлежит компании Corelи
является составной частью CorelOfficeProfessional.
В конце 80-х начале 90-х годов Paradox, принадлежавший тогда
45
компании Borland International, был весьма популярной СУБД, в том числе и
в нашей стране, где он одно время занимал устойчивые позиции на рынке
средств разработки приложений с базами данных.
Данный тип баз данных применяется в основном для разработки
приложений локальных баз данных. Применение баз данных в сети
предполагает такой же доступ, как и для локальных приложений.
Данный тип баз данных не поддерживает систему пользователей. Все
пользователи изначально имеют одинаковые права на доступ к данным.
Разделение прав доступа возможно только средствами разработанного
приложения.
В настоящее время одной из наиболее распространенных и новых
СУБД является Microsoft Access 2010, которая предоставляет большие
возможности и колоссальное удобство, это приложение позволит эффективно
работать даже в случае, если вы не являетесь серьезным специалистом по
работе с базами данных. Благодаря большому количеству грамотно
разработанных шаблонов, работа в Access удобна в использовании даже при
большом объеме. СУБД Accessпозволяет создавать БД различного объема, с
которыми работают в монопольном режиме или режиме коллективного
доступа. Совершенно новое представление Microsoft Office Backstage
позволяет с максимальным эффектом управлять базами данных при удобном
доступе и эффективно управлять ходом работы.
Обновленный конструктор макросов теперь упрощает значительно
разработку сложных логических выражений и делает это интуитивно
понятным для любого опытного разработчика, позволяет очень легко и
быстро объединять данные и повысить качество работы. Теперь
непосредственно в разрабатываемые проекты можно подключать данные веб-
служб, а также SharePoint 2010 Business Connectivity Services, появляется
возможность для импорта данных из различных внешних источников (Excel,
46
Outlook, SQL Server и других приложений пакета программ Microsoft) и
создания связи с ними. При сборе или отправке данных по электронной почте
сервер теперь не понадобится.
Способы доступа к базам данных теперь выходят на качественно новый
уровень, благодаря интегрированию в Access приложения SharePoint Server
2010, что отныне позволит размещать базы данных при помощи новой
технологии веб-баз данных. Эта функция будет очень кстати и для тех, кто
занимается веб-разработками, так как с помощью этого приложения
опубликовать базу данных на сайте не составит большого труда. Теперь
удобнее будет использовать базы данных совместно. Можно будет к ним не
только обращаться, но и вносить коррективы непосредственно через
Интернет. А пользователи, у которых не установлено приложение Access, все
равно смогут открыть веб-формы или отчеты через браузер. При этом
вносимые изменения синхронизируются автоматически. Accessимеет
характерный для всех приложений MicrosoftWindows удобный графический
интерфейс, ориентированный на комфортную работу пользователя.
Необходимо выделить критерии оценки СУБД. Важность каждого из
представленных критериев была оценена экспертами по 100 бальной шкале.
Исходя из полученных данных, находится средний балл и коэффициент
относительной важности критерия. Результаты первого этапа экспертизы
представлены в таблице 2.
Проведем выбор СУБД методом экспертного оценивания. Мнение
экспертов оценивалось на информационном форуме, были привлечены
ведущие специалисты в своей области.
47
Таблица 2 - Сравнение СУБД
Коэффициент относительной важности:
%100
баллСредний
К
.
где
сумма усреднённых экспертных оценок первого этапа экспертизы.
Результаты второго этапа экспертизы представлены в таблице 3.
Таблица 3 - Результаты второго этапа экспертизы
Эксперт 1
Эксперт 2
Эксперт 3
Средний
балл по 100
бальной
шкале
Коэффициент
относительной
важности
85
90
79
85
13,5
75
80
81
79
12,5
90
95
92
92
14,6
85
90
81
85
13,6
95
90
85
90
14,4
100
100
100
100
15,9
95
100
96
97
15,5
628
100,0%
Функция
Коэффициент
относительной
важности
Microsoft
Access
Paradox
MySQL
Стоимость СУБД
13,5
+
+
-
Операционная система
12,5
+
+
+
Простой интерфейс
14,6
+
+
+
Широта распространения
13,6
+
+
+
Качество справочной
информации к системе
14,4
+
+
+
Количество пользователей
15,9
+
-
+
Простота использования
15,5
+
+
-
Сумма
100,0%
100%
84%
71%
48
Из всего вышеперечисленного и учитывая анализ СУБД методом
экспертного оценивания, оптимальным средством проектирования базы
данных выбрано MS Access 2010.
Таким образом, для разработки автоматизированной информационной
системы выбраны средства разработки – язык программирования Delphi и
СУБД MS Access 2010.
Алгоритм работы приложения состоит из следующих этапов:
Таблица 4 – Основные этапы работы приложения
Название
Описание
Авторизация
В приложении реализовано два варианта
авторизации: ручной – когда пользователю
предоставляется возможность выполнить
на начальном этапе вход на сайт,
автоматический – когда система
самостоятельно выполняет вход,
используя заранее определенные
параметры задания
Построение карты сайта
Карта сайта представляет собой множество
ссылок доступных пользователю.
Поиск отраженных XSS-уязвимостей
Используя карту сайта и справочник XSS-
уязвимостей, выполняется встраивание
XSS-кода в параметры страниц, после чего
выполняется анализ страниц с целью
обнаружения внедренных XSS-сигнатур.
Поиск отраженных XSS-уязвимостей
Используя карту сайта и справочник XSS-
уязвимостей, выполняется встраивание
XSS-кода в поля форм ввода, после чего
выполняется анализ страниц с целью
обнаружения внедренных XSS-сигнатур.
Формирование отчета по результатам
поиска
На основе результатов выполнения
предыдущего шага составляется отчет,
который содержит результаты поиска
уязвимостей в удобной для восприятия
форме с выдачей рекомендаций по их
устранению
Для хранения исходных данных и результатов работы модулей
системы приложение использует базу данных в формате MS ACCESS.
Основные таблицы базы данных описаны в таблице 5:
49
Таблица 5 – Описание основных таблиц базы данных
Название
Описание
Problem
Уязвимость (справочник уязвимостей)
Task
Задание
TaskState
Состояние задания
Page
Страница сайта
PageCheck
Результаты проверки страницы
TaskProblem
Список уязвимостей, которые будут
проверяться в текущем задании
ProblemType
Тип уязвимости
Рисунок 6 – Структура базы данных
Таблица 6 - Структура классов
Название
Описание
TWebBrowser
Класс, реализующий механизм доступа к
функциональности Microsoft Internet Explorer.
Встроенный класс Delphi.
TDatabaseObject
Класс, реализующий базовые функции для
обращения к базе данных. Реализация содержится в
файле «uDatabaseObject.pas».
TSiteNavigator
Является базовым классом для компонентов,
реализующих механизм навигации по
содержимому web-приложений. Реализует внутри
себя возможность подключения к объектам
TWebBrowser. Также наследует функции от класса
«TDatabaseObject». Реализация содержится в файле
«uSiteNavigator.pas».
50
Продолжение таблицы 7
Название
Описание
TSiteLogin
Является наследником класса «TSiteNavigator».
Реализует механизм автоматической авторизации.
Реализация содержится в файле «uSiteLogin.pas».
TSiteMapCreator
Является наследником класса «TSiteNavigator».
Реализует механизм создания карты сайта.
Реализация содержится в файле
«uSiteMapCreator.pas».
TSiteReflectedXssFinder
Является наследником класса «TSiteNavigator».
Реализует механизм поиска отраженных
уязвимостей на основе созданной карты сайта.
Реализация содержится в файле
«uSiteXssFinder.pas».
TSiteStoredXssFinder
Является наследником класса «TSiteNavigator».
Реализует механизм поиска хранимых уязвимостей
на основе созданной карты сайта. Реализация
содержится в файле «uSiteXssFinder.pas».
Рисунок 7 – Диаграмма классов
51
Класс «TDatabaseObject»
Базовый класс, для создания компонентов которые работают с базой
данных
Класс «TSiteNavigator»
Базовый класс для реализации навигаторов. Реализует внутри себя
набор функций, которые позволяют выполнять загрузку и анализ web-
страниц. Взаимодействует с базой данных.
Таблица 8 Описание класса
Field Summary
internal TIdURI
FBaseURI
Результат разложения базового адреса на
составляющие
internal string
FBaseURL
Базовый адрес
internal TSiteNavigatorChangeData
FOnChangeData
Обработчик события "Изменение данных"
internal TSiteNavigatorChangeState
FOnChangeState
Обработчик события "Изменение статуса"
internal TSiteStatusTextChange
FOnStatusTextChange
Обработчик события "Изменение статуса"
internal TSiteNavigatorState
FState
Текущее состояние навигатора
internal TADOQuery
FTask
Данные текущей задачи (данные из БД)
internal Integer
FTaskID
Идентификатор текущей задачи
internal TTimer
FTimer
Таймер
internal TStringList
FUsedExtensionList
Список используемых расширений
internal TWebBrowser
FWebBrowser
Браузер
Множество «TSiteNavigatorState»

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)
Value-based education: ценности в системе образования и способы их реализации на уроке английского языка. Опыт Европейских стран