Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2605.pdf
Скачиваний:
96
Добавлен:
07.01.2021
Размер:
33.4 Mб
Скачать

ПРОГРАММНАЯ И АППАРАТНАЯ СОСТАВЛЯЮЩАЯ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

И ИХ БЕЗОПАСНОСТЬ

УДК 004

АНАЛИЗ ПРОБЛЕМ РАЗРАБОТКИ СЕРВЕРНОЙ ЧАСТИ АВТОМАТИЗИРОВАННОЙ СИСТЕМЫ ПРОВЕРКИ ПРАВИЛЬНОСТИ

СОСТАВЛЕНИЯ SQL ЗАПРОСОВ

AN ANALYSIS OF THE DEVELOPMENT PROBLEMS OF THE SERVER PART OF A COMPUTER-AIDED SYSTEM FOR CHECKING THE

CORRECTNESS OF SQL QUERIES

П.А. Мальцев

Сибирский государственный автомобильно-дорожный университет (СибАДИ), Россия, г. Омск

Аннотация. В основе реализации серверной части автоматизированной системы

 

проверки правильности составления SQL запросов лежит выбор технологий, которые

 

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

 

безопасности, которые необходимо реализовать в системе.

 

Ключевые слова: Python, Django, SQL запрос, база данных, автоматизированная

 

система, тестирование.

 

Введение

 

В настоящее время в дисциплинах, связанных с базами данных, при аттестации студентов

 

обязательно проверяется умение студента составлять SQL запросы. Лабораторные работы по

740

курсам баз данных представляют собой методические указания для студентов по составлению

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

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

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

Выбор технологий, способов и принципов реализации приложения

Для удобства пользователей автоматизированной системы проверки правильности написания SQL запросов было решено реализовать ее с Web интерфейсом на основе клиент-

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

Для разработки серверной части автоматизированной системы проверки правильности SQL запросов было решено использовать следующий стек технологий: язык программирования

Python и фреймворк Django.

Python – высокоуровневый интерпретируемый язык программирования, который поддерживает несколько парадигм программирования, в том числе структурное, объектно-

Фундаментальные и прикладные исследования молодых учёных: материалы Международной научно- практической конференции студентов, аспирантов и молодых учёных, 8-9 февраля 2017 г.

ПРОГРАММНАЯ И АППАРАТНАЯ СОСТАВЛЯЮЩАЯ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

И ИХ БЕЗОПАСНОСТЬ

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

уPython большого количества фреймворков для Web разработки.

Впару к Python был выбран Django. Это фреймворк, который поддерживает концепцию MVT

Model-View-Template (Модель-Представление-Шаблон) [1]. Подобная концепция даёт

возможность разделить модель приложения, интерфейс пользователя и взаимодействие с пользователем.

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

Шаблон отвечает за отображение информации.

Представление же обеспечивает связь между пользователем и системой. Контролирует ввод данных пользователем и использует модель и шаблон для реализации необходимой реакции.

Сайты на Django состоят из одного или нескольких приложений, которые являются подключаемыми и жёстко не привязаны друг к другу, что позволят повторно использовать эти приложения.

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

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

Также в Django присутствует ORM (объектно-реляционное отображения) это технология,

которая позволяет преобразовать классы Python в таблицы реляционных БД, что значительно 741 упрощает работу с СУБД и увеличивает безопасность приложения, так как исключит человеческий фактор и закроет возможность использования SQL-инъекций.

Именно из-за качеств, перечисленных выше, для разработки серверной части приложения

были выбраны Python и Django.

Для реализации основной функции автоматизированной системы - проверки правильности

написания SQL запросов было решено использовать метод “сравнения результатов запроса” и на сервере стек технологий Python+Django.

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

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

созданные в различных СУБД, ограничение стоит только в наличии драйвера для соединения python и СУБД [5]. Это позволяет пользователям тренироваться с различными технологиями с учётом их особенностей.

Архитектура БД приложения

В качестве СУБД для автоматизированной системы был взят MySQL, так это свободно распространяемое ПО и хорошо работает в связке с python и django [7].

Для создания приложения была разработана схема данных, представленная на рисунке 1

Фундаментальные и прикладные исследования молодых учёных: материалы Международной научно- практической конференции студентов, аспирантов и молодых учёных, 8-9 февраля 2017 г.

ПРОГРАММНАЯ И АППАРАТНАЯ СОСТАВЛЯЮЩАЯ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

И ИХ БЕЗОПАСНОСТЬ

Test

 

 

 

 

 

 

 

 

 

GP

 

 

 

 

 

 

 

MyUser

 

 

 

 

 

 

PK

id

 

 

 

 

 

 

 

 

 

 

 

 

PK id

 

 

 

 

 

PK id

 

 

 

 

 

 

 

 

 

 

 

 

Name

 

 

NameGP

 

 

 

 

 

 

 

username

 

 

 

 

 

 

 

DateActivate

 

 

 

 

 

 

 

 

 

 

 

GP

 

 

 

 

Time

 

 

 

 

 

 

 

 

 

 

 

 

 

 

email

 

 

 

 

Task

TestPerson

 

 

 

 

 

 

 

 

 

 

 

last_name

 

 

 

 

TestPerson

 

PK

id

 

first_name

 

TestConnectDataBase

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Person

 

password

 

PK

id

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Test

 

is_staff

 

 

Test

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Task

 

 

 

Mark

 

is_superuser

 

 

ConnectDataBase

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

PK

id

 

 

StartTest

 

is_active

 

 

 

 

 

 

 

 

 

 

 

 

 

NameTask

 

 

Variant

 

last_login

 

 

Category

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TaskText

 

 

 

 

date_joined

ConnectDataBase

 

 

 

 

 

 

 

PK

id

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

WTask

TestTask

 

 

 

PK

id

 

Name

 

 

 

 

 

 

 

 

 

 

Weight

PK

id

 

Answers

 

NameConnection

 

 

 

 

 

 

 

 

 

 

 

 

Vision

 

Test

 

PK

id

 

ConnectionString

 

 

 

 

 

 

 

 

 

 

 

 

Category

 

Task

 

TestTask

 

ShadowConnection

 

 

 

 

 

 

 

 

 

 

 

 

ConnectDataBase

 

Variant

 

TestPerson

 

 

 

 

 

 

 

 

 

Answer

 

 

 

Рисунок 1 Схема БД

 

 

 

 

742

 

 

 

 

 

 

 

 

Теперь подробнее о базе данных. Пользователи группируются, но каждый пользователь может состоять только в одной группе. Все вопросы разбиты на категории. Они также могут входить только в одну категорию.

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

Для прохождения тестирования пользователи должны быть подписаны на тесты, для этого организуется связь «многие ко многим» через таблицу TestPerson, также в это таблицу будет

записана оценка пользователя после тестирования.

Ответы тестируемых будут записываться в таблицу Answer. Персонифицировать ответы пользователей позволяет связь с таблицами TestPerson и TestTask.

Таблица ConnectionString, которая хранит в себе информацию для подключения к внешним БД, связана с таблицами Test и Task, что образует кольцо, но это необходимо для реализации тренажёра для пользователей и разделения тестов для разных СУБД.

Данная архитектура позволяет создавать тесты с несколькими вариантами ответов для разных СУБД, повторно использовать вопросы. Также можно несколько раз подписывать пользователя на один и тот же тест или сразу всю группу.

Вопросы разделены на категории, что позволяет создавать разнообразные тесты.

В случае несогласия пользователя (студента) с результатами существует возможность

просмотреть его ответы и при правомерности апелляции исправить оценку за тест.

Далее речь пойдёт о реализованных функциях на основе данной архитектуры базы данных.

Основные функции системы

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

Фундаментальные и прикладные исследования молодых учёных: материалы Международной научно- практической конференции студентов, аспирантов и молодых учёных, 8-9 февраля 2017 г.

ПРОГРАММНАЯ И АППАРАТНАЯ СОСТАВЛЯЮЩАЯ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

И ИХ БЕЗОПАСНОСТЬ

Функция добавления пользователей и групп

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

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

Если поле группы будет не пустым, то значение, переданное от пользователя, будет сохранено как имя группы.

После этого пройдёт проверка на пустоту поля c пользователями. Если в поле не является пустым, то строка, полученная с клиента, будет преобразована в список.

Далее циклом по одному будут создаваться аккаунты студентов. Логином будет выступать название группы плюс тире и номер под которым он вводился администратором. Пароль формируется по схожему принципу “Qwerty123” плюс номер студента.

После завершения создания пользователей произойдёт автоматическое перенаправление на главную страницу панели администратора.

Функция создания теста

Следующей будет рассмотрена функция для создания тестов.

Сначала пользователю (преподавателю) отправляется форма в которой ему предлагается заполнить поля, необходимые для создания теста. Как только пользователь заполняет поле с выбором подключаемой БД и нажимает кнопку. На сервер идёт ajax запрос на предоставление категорий и вопросов, которые подходят для выбранной БД. У пользователя появляется выбор вопросов из категорий. После заполнения всех необходимых полей информация передаётся на сервер в JSON файле.

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

По выбранной БД отбирается список возможных вопросов и собирается список категорий из переданных данных.

Создаётся и записывается тест с переданным именем, датой активации и временем 743 прохождения.

Далее записывается связь между тестом и подключением к внешней БД.

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

Функция подписания студента на тест

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

какой тест. Есть возможность подписать либо одного человека, либо сразу всю группу.

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

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

извлекаются из БД по их принадлежности к группе.

Следующий шаг - выяснение, сколько существует вариантов для данного теста. Все

найденные варианты заносятся в список.

Последним этапом осуществляется выбор случайного варианта и его закрепление за тестируемым. Если этот вариант уже пройден студентом и список вариантов не пустой, то студент будет подписан на другой случайный вариант.

Функция тестирования студентов

Тест для студента начинается, как только он переходит по ссылке. На сервер приходит GET запрос с информацией об id теста и варианте студента. Из БД извлекаются необходимые

Фундаментальные и прикладные исследования молодых учёных: материалы Международной научно- практической конференции студентов, аспирантов и молодых учёных, 8-9 февраля 2017 г.

ПРОГРАММНАЯ И АППАРАТНАЯ СОСТАВЛЯЮЩАЯ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

И ИХ БЕЗОПАСНОСТЬ

вопросы, выполняется эталонный запрос преподавателя и вопросы и результаты запроса

 

отправляютсят на клиент POST запросом.

 

У студента должна быть возможность проверять свои запросы. Поэтому в этой функции

 

реализована проверка запросов студента до завершений теста.

 

С клиента с помощью ajax запроса приходит JSON файл, в котором флаг для определения

 

того, что это проверка, сам запрос. Из адресной строки возвращается номер теста. По этому

 

номеру выбирается строка подключения для этого теста и выполняется запрос студента. Затем

 

результаты возвращаются обратно на клиент (также с помощью ajax).

 

Последней возможностью данной функции является проверка студента, после завершения

 

теста. Посредством ajax приходит JSON файл, в котором лежат все ответы студента,

 

привязанные к конкретному вопросу. Внешняя БД выбирается в зависимости от теста, после

 

чего устанавливается соединение с открытой и скрытой БД и запросы студента начинают

 

выполнятся. Результаты запросов проходят сравнение с запросами преподавателя и в случае

 

верного ответа сумма баллов студента увеличивается на вес вопроса, в противном случае

 

ничего не изменяетсяя.

 

Оценка за тест высчитывается нахождением отношения набранных баллов на максимально

 

возможное их количество и умножается на 100. После чего оценка записывается в БД.

 

Функция просмотра пользователей

 

Одной функции для создания пользователей мало, чтобы обеспечить удобство пользования

 

системой, поэтому была добавлена возможность просмотра существующих пользователей, в

 

которой также можно сбросит пароль.

 

Сначала в список добавляется информация о всех пользователях и отправляется POST

 

запросом на клиент.

 

Вторая возможность этой функции сбросить пароль пользователя. Для этого идёт

 

пересоздание пользователя с заранее известным паролем. С клиента приходит ajax запрос с

 

флагом и номером человека, для которого необходимо сделать сброс.

 

Функция просмотра ответов пользователей

744

На клиент POST запросом отправляется форма с полями: название теста, студент и

вариант.

Далее с помощью ajax приходят JSON файлы с различными флагами. В зависимости от флага происходит отбор по одному из трех полей. Как только все иметь значение True, будут получены ответы студента за определённый тест и сразу же отправлены на клиент.

Функция просмотра результатов пользователей

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

После этого появляется возможность фильтровать результаты по пользователям, тестам, оценкам, вариантам. Вся информация с клиента ajax запросами в JSON файлах с разными флагами.

Функция тренажёра

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

Изначально на клиент POST запросом уходит информация о всех существующих категориях.

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

В остальном эта функция работает также как функция для проведения тестирования.

Обеспечение безопасности автоматизированной системы

Еще один достаточно важный аспект это безопасность системы тестирования, включая

защиту от межсайтового скриптинга (XSS)

Фундаментальные и прикладные исследования молодых учёных: материалы Международной научно- практической конференции студентов, аспирантов и молодых учёных, 8-9 февраля 2017 г.

ПРОГРАММНАЯ И АППАРАТНАЯ СОСТАВЛЯЮЩАЯ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

И ИХ БЕЗОПАСНОСТЬ

Межсайтовый скриптинг - тип атаки на веб-системы, заключающийся во внедрении в

 

выдаваемую веб-системой страницу вредоносного кода (который будет выполнен на

 

компьютере пользователя при открытии им этой страницы) и взаимодействии этого кода с веб-

 

сервером злоумышленника. Является разновидностью атаки «внедрение кода» [1].

 

Защита от подделки межсайтового запроса (CSRF)

 

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

 

недостатки протокола HTTP. Если жертва заходит на сайт, созданный злоумышленником, от её

 

лица тайно отправляется запрос на другой сервер (например, на сервер платёжной системы),

 

осуществляющий некую вредоносную операцию (например, перевод денег на счёт

 

злоумышленника). Для осуществления данной атаки жертва должна быть аутентифицирована

 

на том сервере, на который отправляется запрос, и этот запрос не должен требовать какого-

 

либо подтверждения со стороны пользователя, которое не может быть проигнорировано или

 

подделано атакующим скриптом [1].

 

Защита от SQL инъекций

 

SQL-инъекция - один из распространённых способов взлома сайтов и программ,

 

работающих с базами данных, основанный на внедрении в запрос произвольного SQL-кода.

 

Внедрение SQL, в зависимости от типа используемой СУБД и условий внедрения, может

 

дать возможность атакующему выполнить произвольный запрос к базе данных (например,

 

прочитать содержимое любых таблиц, удалить, изменить или добавить данные), получить

 

возможность чтения и/или записи локальных файлов и выполнения произвольных команд на

 

атакуемом сервере.

 

Атака типа внедрения SQL может быть возможна из-за некорректной обработки входных

 

данных, используемых в SQL-запросах. Разработчик прикладных программ, работающих с

 

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

 

внедрению SQL.

 

При использовании Django ORM созданный SQL запрос будет правильно экранирован

 

соответствующим драйвером базы данных. Однако, Django предоставляет разработчикам

745

возможность писать запросы напрямую или выполнять собственные запросы. Эти возможности

следует использовать умеренно и всегда обращать пристальное внимание на экранирование всех параметров, которые предоставлены пользователем [1].

Защита от кликдженкинга

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

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

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

Django предоставляет защиту от этой атаки в виде определенного модуля, который, при использовании соответствующего браузера, может предотвратить отображение сайта внутри фрейма. Есть возможность отключить данную защиту для выбранных представлений или настроить значение отправляемого заголовка [1].

Защита от перехвата данных при отсутствии HTTPS

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

может даже изменять данные, передаваемые в любом направлении.

Django может обеспечить защиту от перехвата данных при отсутствии HTTPS. Существует ряд простых настроек, которыми не следует пренебрегать при создании веб-приложения.

Список встроенных инструментов для защиты от перехвата данных: 1) Настройка перенаправления HTTP запросов на HTTPS;

Фундаментальные и прикладные исследования молодых учёных: материалы Международной научно- практической конференции студентов, аспирантов и молодых учёных, 8-9 февраля 2017 г.

ПРОГРАММНАЯ И АППАРАТНАЯ СОСТАВЛЯЮЩАЯ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

ИИХ БЕЗОПАСНОСТЬ

2)Использование «безопасных» cookies. Если браузер изначально подключается через

HTTP, что характерно для большинства браузеров, есть возможность утечки существующих cookie. Для решения данный проблемы в Djano есть специальные настройки, благодаря которым можно заставить браузер отправлять такие cookies только через HTTPS.

3)Использование HTTP Strict Transport Security (HSTS). HSTS является HTTP заголовком,

который информирует браузер, что все следующие соединения к конкретному сайту всегда должны использовать HTTPS. Дополняя это перенаправлением HTTP апросовз на HTTPS, Django обеспечивает дополнительную защиту от использования SSL. HSTS, в свою очередь, обычно настраивается на веб сервере [1].

Проверка заголовка хоста

Django использует заголовок Host, предоставляемый клиентом, для создания ссылок в определённых случаях. Несмотря на то, что эти данные безопасны с точки зрения защиты от атак межсайтового скриптинга, поддельный заголовок Host может быть использован для атак CSRF, подмены кэша и для подмены ссылок в сообщениях электронной почты.

Поскольку даже по-видимому безопасные конфигурации веб-сервера восприимчивы к

поддельным заголовкам Host, Django проверяет этот заголовок относительно определенного параметра конфигурации [1].

Безопасность сессий

Аналогично требованиям ограничений CSRF, чтобы сайт был настроен так, чтобы нежелательные пользователи не имели доступа ни к одному поддомену, Django также имеет ограничения [1].

Заключение

На основе метода “сравнения строк”, языка python и фреймворка Django была реализована серверная часть представленной автоматизированной системы. Система реализует функции для создания пользователей, создания тестов для них и проведения самого тестирования.

Выбранная архитектура приложения позволит одновременно проверять множество студентов единовременно. При этом будет затрачено значительно меньше времени, что разгрузит преподавателя и студента.

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

Для правильной работы всего этого функционала на сервере идёт обработка полученных данных и устанавливается связь с СУБД. Это всё подводит к тому, что при написании серверной части приложения необходимо внимательно следить оптимизацией кода, так как некачественный код может привести к медленной работе системы либо же к её полному падению.

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

Таким образом, при разработке автоматизированной системы необходимо исходить из

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

Научные руководители ст. преподаватель Любич С. А.; д-р пед. наук, проф. Семенова З. В.

Библиографический список

1. Документация Django [Электронный ресурс]. Режим доступа: http://djbook.ru/rel1.8/index.html ,

свободный, дата обращения (20.12.2016).

Фундаментальные и прикладные исследования молодых учёных: материалы Международной научно- практической конференции студентов, аспирантов и молодых учёных, 8-9 февраля 2017 г.

ПРОГРАММНАЯ И АППАРАТНАЯ СОСТАВЛЯЮЩАЯ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

ИИХ БЕЗОПАСНОСТЬ

2.Документация Python [Электронный ресурс]. Режим доступа: https://docs.python.org/3.5/ ,

свободный, дата обращения (20.12.2016).

3.Github Django-jet[Электронный ресурс]. Режим доступа: https://github.com/geex-arts/django-jet ,

свободный, дата обращения (20.12.2016).

4.Github Django-registration [Электронный ресурс]. Режим доступа:

https://github.com/ubernostrum/django-registration , свободный (дата обращения: 23.12.2016).

5.pyodbc [Электронный ресурс]. Режим доступа: https://mkleehammer.github.io/pyodbc/ , свободный (дата обращения: 23.12.2016).

6.Документация Django [Электронный ресурс]. Режим доступа: https://docs.djangoproject.com/en/1.10/ , свободный (дата обращения: 23.12.2016).

7.Документация MySQL [Электронный ресурс]. Режим доступа: https://dev.mysql.com/doc/ , свободный (дата обращения: 23.12.2016).

8.Марк Лутц. Изучаем python [Электронный ресурс]. Режим доступа: http://www.shashkovs.ru/_prog/Lutc_M._-_Izuchaem_Python_(4-e_izdanie)-_2011.pdf , свободный (дата обращения: 23.12.2016).

AN ANALYSIS OF THE DEVELOPMENT PROBLEMS OF THE SERVER PART OF A COMPUTER-AIDED SYSTEM FOR CHECKING THE CORRECTNESS OF SQL QUERIES

P.A. Maltsev

Abstract. At the core of the implementation of server-side computer-aided system checks the

 

correctness of SQL queries is the choice of technology that will be used to develop the system

 

architecture, taking into account safety aspects and functions, which need to be implemented in the

 

system.

 

Keywords: Python, Django, SQL query, database, computer-aided system, testing.

 

Мальцев Павел Андреевич (Россия, г. Омск) студент группы БИб-13И1 ФГБОУ ВО «СибАДИ»

747

(644080, г. Омск, пр. Мира, 5, e-mail: zeden123@gmail.commailto:valeria.chud@yandex.ru).

 

Научные руководители Любич Станислав Александрович (Россия, г. Омск) ст. преподаватель

 

кафедры «Информационная безопасность» ФГБОУ ВО «СибАДИ» (644080, г. Омск, пр. Мира, 5, e-mail:

 

ljubich_stas@mail.ru);

 

Семенова Зинаида Васильевна (Россия, г. Омск) доктор педагогических наук, профессор,

 

заведующий кафедрой «Информационная безопасность» ФГБОУ ВО «СибАДИ» (644080, г. Омск, пр.

 

Мира, 5, e-mail: zvs111@gmail.com).

 

Maltsev Pavel Andreevich (Russian Federation, Omsk) – student of group BIb-13I1 of The Siberian State

 

Automobile and Highway University (SibADI) (644080, Mira, 5 prospect, Omsk, Russian Federation, e-mail:

 

zeden123@gmail.commailto:valeria.chud@yandex.ru).

 

Scientific advisers – Lubich Stanislav Alexandrovich (Russian Federation, Omsk) – senior lecturer of The

 

Department "Information security" Siberian State Automobile and Highway University (SibADI) (644080, Mira, 5

 

prospect, Omsk, Russian Federation, e-mail: ljubich_stas@mail.ru);

 

Semenova Zinaida Vasilievna (Russian Federation, Omsk) – doctor of pedagogical sciences, professor, head

 

of The Department "Information security" Siberian State Automobile and Highway University (SibADI) (644080,

 

Mira, 5 prospect, Omsk, Russian Federation, e-mail: zvs111@gmail.com.

 

Фундаментальные и прикладные исследования молодых учёных: материалы Международной научно- практической конференции студентов, аспирантов и молодых учёных, 8-9 февраля 2017 г.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]