Смекни!
smekni.com

Подсистема визуальной генерации отчётов в рамках информационно-образовательного портала (стр. 4 из 9)


Рисунок 2 – Создание защищённого соединения

При доступе к системе авторизации создается защищенное соединение с помощью протокола SSL, настроенного как модуль веб-сервера. Весь входящий и исходящий трафик на сервер шифруется и таким образом злоумышленник, перехватив трафик, не сможет прочитать секретные данные (логин и пароль пользователя). После прохождения авторизации создается сессия, в которой хранится уникальный идентификатор пользователя на протяжении всей его работы с веб-сайтом. Данная информация используется приложениями веб-сайта на протяжении всей работы пользователя или несколько дней или недель, в зависимости от настроек при создании сессии.

Когда пользователь авторизован, создается временное представление, содержащее поля таблиц персональных данных в зашифрованном виде.

Создание временного представления в совокупности с дешифрованием полей таблиц персональных данных, указанных в представлении, позволяет поддерживать конфиденциальность персональных данных.

Формирование временного представления происходит так, что при получении им полей таблиц персональных данных вызывается функция дешифрования и когда конструктор запросов обращается к полям представления, они находятся в расшифрованном виде.

После выполнения всех предыдущих шагов приложение (конструктор запросов) позволяет аутентифицированному пользователю конструировать пользовательские запросы к расшифрованным данным и получать результаты в расшифрованном виде. Однако, сами таблицы с персональными данными хранятся в шифрованном виде.

Когда пользователь покидает приложение, прекращается сеанс работы с базой данных и созданное временное представление уничтожается. Таким образом, при доступе злоумышленника к серверу баз данных он может скопировать себе таблицы персональных данных, находящиеся в шифрованном виде, что не поможет ему для получения исходных данных (или усложнит этот процесс), а о существовании временного представления злоумышленник не может знать.

2.2 Конструктор запросов

Конструктор запросов подразумевает создание SQL запросов посредством графического интерфейса пользователя (GUI).

Идея заключается в наличии у пользователя некоторой подготовленности и знанию ER-модели существующей системы управления базами данных. Посредством GUI обеспечивается удобное составление запросов.

Конструирование отчета производится на базе некоторого отношения, полученного из базы данных (рисунок 3). Запрос таких отношений производится средствами языка манипулирования данными, входящими в состав СУБД, в нашем случае, средствами оператора Select, предоставляющего возможности по выполнению реляционных операций селекции и объединения, а также позволяющих применять группировку результатов запроса.


Рисунок 3 - Общая схема запросов к базе данных генератора отчётов.

2.3 Схема информационных потоков, разрабатываемой подсистемы

Схема безопасной обработки персональных данных конструктором запросов показана на рисунке 4. Опишем схему безопасной обработки персональных данных конструктором запросов.

Рисунок 4 - Схема безопасной обработки персональных данных.


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

После создания временного представления происходит дешифрование полей, указанных в представлении при его формировании. Дешифрование происходит по ключу, хранящемуся в настройках приложения. Доступ к настройкам приложения из браузера запрещен.

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

После осуществления описанных шагов пользователь может конструировать запросы к персональным данным. Любое обращение будет идти не к шифрованным таблицам с персональными данными, а к временному представлению. Сформированный пользователем запрос проверяется на корректность, и если ошибок нет, запрос выполняется. Если есть ошибки, запрос не выполняется и в браузер выводится информация о типе ошибке и возможные решения. После выполнения сформированного запроса выводятся результаты его выполнения.

2.4 Схема создания временного представления для текущего пользователя

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

Рисунок 5 – Схема создания временного представления

Поступающий запрос к какой-либо функции приложения должен идти от аутентифицированного пользователя. Если пользователь не аутентифицирован, он перенаправляется на страницу аутентификации.

После прохождения аутентификации в сеансе хранится уникальный идентификатор пользователя, который извлекается при доступе к какой-либо части конструктора запросов. По этому идентификатору необходимо получить список полей таблиц персональных данных, доступных текущему пользователю.

Когда список доступных текущему пользователю полей получен, происходит формирование запроса к серверу баз данных. Создается уникальное имя временного представления, формируется часть запроса, которая указывает на доступные поля таблиц персональных данных путем подстановки полученного списка полей. Уникальность имени временного представления осуществляется с помощью добавления префикса в виде полученного идентификатора пользователя к имени временного представления.

Сформированный запрос к СУБД выполняется и создается временное представление.

2.5 Конструктор отчёта

Конструктор отчёта реализует функции визуализации, выбранных, посредством запросов, различных данных.

В качестве базового формата представления данных выбран MSExcel 2003.

Конструктор отчёта представляет собой следующую структуру (Рисунок 6):


«Заголовок отчёта»
«Заголовок группы 1»
«Заголовок группы 2»
--------
Данные отчёта
«Окончание группы №…»
«Окончание группы 2»
«Окончание группы 1»
«Окончание отчёта»

Рисунок 6 – Структура визуального представления отчёта

2.5.1 Работа оператора Select

Источником данных является таблица (отношение) – результат выполнения SQL-запроса «Select». С помощью этой команды можно получить доступ к данным, представленным как совокупность таблиц практически любой сложности.

Чаще всего используется упрощенный вариант команды SELECT, имеющий следующий синтаксис:

SELECT <Список_выбора>

[INTO <Новая_таблица>]

FROM <Исходная_таблица>

[WHERE <Условие_отбора>]

[GROUPBY <Ключи_группировки>]

[HAVING <Условие_отбора>]

[ORDERBY <Ключи_сортировки> [ASC | DESC] ]

Инструкция SELECT разбивается на отдельные разделы, каждый из которых имеет свое назначение.

Основное назначение радела SELECT – задание набора столбцов, возвращаемых после выполнения запроса, т.е. внешнего вида результата. В простейшем случае возвращается столбец одной из таблиц, участвующих в запросе. В более сложных ситуациях набор значений в столбце формируется как результат вычисления выражения. Такие столбцы называются вычисляемыми, и по умолчанию им не присваивается никакого имени.

При необходимости пользователь может указать для столбца, возвращаемого после выполнения запроса, произвольное имя. Такое имя называется псевдоним (alias). В обычной ситуации назначение псевдонима необязательно, но в некоторых ситуациях требуется явное его указание. Наиболее часто это требуется при работе с разделом INTO, в котором каждый из возвращаемых столбцов должен иметь имя, и это имя должно быть уникально.

SELECTALL Семестр, Отчетность

FROM Учебный_план

SELECTTOP 5 * FROM Студенты – первые 5 строк

SELECTTOP 10 PERCENT * FROM Студенты – первые 10% от таблицы

SELECT Дисциплина.ID_Дисциплина as Дисц-на, Наименование, Семестр

FROM Дисциплина, Учебный_план

SELECT Наименование, Семестр, Количество_часов

FROM Учебный_план INNER JOIN Дисциплины ON

Учебный_план.ID_Дисциплина=Дисциплины.ID_Дисциплина WHERE Количество_часов>60

SELECT Наименование, Семестр, Количество_часов

FROM Учебный_план LEFTOUTERJOIN Дисциплины ON

Учебный_план.ID_Дисциплина=Дисциплины.ID_Дисциплина

WHERE (Наименование LIKE ‘%информатик%)

Также в конструкторе отчёта учитывается возможность по форматированию содержимого отчёта: размер, стиль шрифтов, их цвет, цвет фона, положение на листе и т.д.

Форматирование листа XLS производится автоматически перед выдачей его пользователю: лист отчёта вписан в область печати, т.е. данные равномерно распределены по ширине листа, если не указаны другие параметры.

2.6 Схема работы программы

На рисунке 5 представлена схема работы программы конструктора отчетов.

При загрузке приложения осуществляется проверка соединения с базой данных. Определяются его права, область видимости и список функциональных возможностей. В результате чего, пользователь может выполнять только разрешенные ему функции. Если у пользователя есть права на добавление объекта в структуру, то программное средство автоматически генерирует уникальный идентификатор, получает данные от пользователя, где в данный момент срабатывает основная из функций защиты. Все вводимые данные пользователем фильтруются специальным модулем, чтобы уберечь программное средство от взлома и сохранить целостность информации в базе данных. После проверки вводимых данных, производится поиск дублей структуры. Если такая структура уже существует, то пользователю выводится предупреждение о сложившейся ситуации. Иначе, в структуру добавляются новый раздел, с указанием его родителя, названием, описанием и другими дополнительнымиданными.В программном средстве осуществляется разделение полномочий и области видимости. Пользователь с правами администратор имеет больше функциональных возможностей, чем пользователь с правами руководителя подразделения. Благодаря этому, осуществляется разделение области видимости данных. Область видимости, зависит от структуры, в которой находится пользователь.Данное программное средство содержит несколько видов защиты.