Главная страница
Фотогалерея
Конференция ИТО

Информационное письмо

Программный комитет

Оргкомитет

Договор оферты

Условия участия в конференции

Список заявленных участников

Список докладов и секций

Партнеры



ООО "Цверг"

статистика

AllBest.Ru
Научные конференции
Яндекс цитирования

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ И АНАЛИЗ БЕЗОПАСНОСТИ КЛИЕНТСКОГО ПРИЛОЖЕНИЯ В ОБЛАЧНОЙ МОДЕЛИ SaaS

Мартишин Сергей Анатольевич (1) (otd13isp@gmail.com)

Симонов Владимир Львович (2) (v.simonov@rambler.ru)

Храпченко Марина Валерьевна (1) (khrapm@gmail.com)

(1) Институт системного программирования РАН, отдел «Теоретической информатики» (ИСП РАН), г. Москва

(2) Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Российский государственный социальный университет» (ФГБОУ ВПО «РГСУ»), г. Москва

Рассмотрены вопросы использования облачной модели SaaS при создании ПО — клиентского web-приложения (SPA), приведен необходимый инструментарий – программные средства создания web-страниц, серверное ПО, синтаксический анализатор кода и др. Проанализированы вопросы безопасности клиентского приложения, показана актуальность стандартных и расширенных методов защиты информации.

SOFTWARE AND ANALYSIS OF CLIENT’S APPLICATION SECURITY IN THE CLOUD SaaS MODEL

Sergei Martishin (1) (otd13isp@gmail.com)

Vladimir Simonov (2) (v.simonov@rambler.ru)

Marina Khrapchenko (1) (khrapm@gmail.com)

(1) Institute for System Programming of the Russian Academy of Sciences (ISP RAS ), Moscow

(2) Russian State Social University (RSSU), Moscow

Discussed are problems of using SaaS cloud model for creating of SPA-web application. Described are necessary tools — software tools for creating web-pages, server software, the parser code and others. Analyzed are security issues of client application, necessity of standard and advanced methods for information security.

На протяжении последних нескольких лет облачные сервисы, основанные на распределенной и удаленной обработке и хранении данных, широко используются и студентами, и преподавателями (например, GoogleDisk, DropBox, размещение и хранение фотографий, статей, комментариев в социальных сетях, сервисах типа LiveJournal и аналогичных). Однако в вузах использование такого рода сервисов долгое время не находило широкого применения, и основная причина здесь – примитивность предоставляемых облачных услуг. Однако в настоящее время наметилась тенденция более активного использования такого рода сервисов. Связано это прежде всего с интенсивным развитием дистанционного образования. Также актуальна совместная работа над проектами, причем как для студентов (выполнение НИРС, практических заданий), так и для преподавателей и администрации вузов (совместные научные исследования, административные задачи – планирование учебного процесса, составление расписания, заполнение отчетных и иных документов и т.п.). Для указанных целей наиболее часто используется модель SaaS («программное обеспечение как услуга», имеющее клиент-серверную архитектуру, здесь клиент использует программное обеспечение (ПО) облачного провайдера). Появившиеся возможности облачных сервисов имеют неоспоримое преимущество — они позволяют вузам не задумываться о необходимости постоянного обновления технической базы, о лицензировании и модификации специального (включая серверное) программного обеспечения, а также о вопросах безопасности при хранении и передаче данных и выполнении вычислений. Исследователями, разработчиками серверного ПО и программистами уделяется значительное внимание проблемам безопасности облака, и указанные проблемы являются предметом постоянно ведущихся исследований как в области техники, так и в области математики.

Клиентская часть указанной модели SaaS также исследуется как с точки зрения совершенствования собственно ПО, так и безопасности, и здесь с развитием аппаратных средств в последнее время появилась возможность часть процесса обработки данных выполнять на стороне клиента за счет использования одностраничных веб-приложений (single page application — SPA).

SPA — это веб-приложение, которое выполняется непосредственно на стороне клиента в Web-браузере. Существенным достоинством SPA является улучшение распределения нагрузки в системе клиент-сервер, а именно уменьшение трафика за счет отсутствия необходимости перезагрузки страниц, упрощение выполняемого на стороне сервера кода за счет перенесения бизнес-логики на сторону клиента. Последнее особенно актуально в связи с тем, что в учебном процессе (например, при выполнении студентами заданий) желательно, чтобы большая часть работы выполнялась на локальном компьютере без взаимодействия с облаком, что значительно увеличивает скорость работы и не требует настройки клиентской части. В этом случае сервер обменивается данными с клиентом, как правило, в формате JSON (JavaScript Object Notation). На стороне клиента происходит управление обновлениями элементов: таблиц, списков, ссылок и т.п. [1].

SPA не является самостоятельной технологией, и для его создания используются хорошо известные программные средства, являющиеся свободным и свободно-распространяемым ПО: HTML5 (обновленная спецификация), JavaScript с новыми возможностями (например, встроенный объект JSON, предоставляющий функции для преобразования значений JavaScript в формат JSON), библиотека jQuery, CSS, PHP и пр.

Клиентская часть приложения в основе своей архитектуры имеет модуль оболочки, предназначенный для отрисовки и управления функциональными контейнерами (как правило, div, в которых и содержится функциональность). Также модуль координирует взаимодействие функциональных модулей, в которых заключена бизнес-логика приложения [1].

В качестве сервера для SPA часто используется Node.js [3,4]. Указанная платформа предназначена для построения веб-серверов и позволяет JavaScript взаимодействовать с устройствами ввода-вывода через свой API и подключать внешние библиотеки, обеспечивая вызовы к ним из JavaScript-кода. Node.js — неблокирующий событийно-управляемый веб-сервер, имеющий единственную очередь событий, в которую ставятся все входящие запросы. Использование Node.js для простых приложений подразумевает знание JavaScript.

Проверка потенциальных проблем кода, написанного на JavaScript, может осуществляться таким инструментом разработчика, как JSLint – синтаксическим анализатором кода. JSLint позволяет тестировать код без использования браузера [5].

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

·        передача токенов (token) сессии для предотвращения межсайтовой подделки запроса (Сross Site Request Forgery — CSRF), который создается путем генерации случайного хеш-кода;

·        очистка передаваемых данных от html тегов и спецсимволов при помощи функций strip_tags() и htmlspecialchars(), что помогает предотвращать межсайтовый скриптинг (Cross Site Scripting – XSS, вариант атаки «внедрение кода»). Здесь опасность состоит в том, что внедренный код может быть выполнен на стороне клиента, а данные могут быть похищены. Кроме того, межсайтовый скриптинг может быть использован для проведения DoS-атаки;

·        предкомпиляция sql- запросов средствами PDO (PHP Data Objects) через использование метода PDO::prepare() для борьбы с sql-инъекциями [6].

·        Как правило, этих методов на стороне клиентского ПО вполне достаточно для защиты от пассивного противника, который только наблюдает, и стандартных атак.

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

При подготовке студентов направлений «Информационные системы и технологии», «Программная инженерия» и ряда других, в курсах, связанных с web-программированием, студенты изучают перечисленные выше основы (HTML5, JavaScript (библиотека jQuery), CSS и основы РНР), затем выполняют ряд проектов, используя элементы технологии SPA.

Таким образом, изучение студентами технологий и моделей SaaS, SPA, знакомство с технологиями по разработке и исследованиям методов защиты данных в облачных вычислениях позволяет обучающимся быть в курсе современных тенденций web-программирования (и в итоге легче адаптироваться на рабочем месте при работе по специальности), а преподавателям и администрации вузов — создавать эффективное ПО для планирования, управления и оценки хода образовательного процесса.

Литература

1.  Миковски Майкл С., Пауэлл Джош К. Разработка одностраничных веб-приложений. — ДМК-Пресс, 2014., -512 с., ISBN: 978-5-97060-072-6.

2.  Варновский Н.П., Мартишин С.А., Храпченко М.В., Шокуров А.В. Пороговые системы гомоморфного шифрования и защита информации в облачных вычислениях. // «Программирование», 2015г., принято в печать.

3.  Кантелон М.,Хартер М., Райлих Н., Головайчук TJ. Node.js в действии. Питер, 2015., — 448 с, ISBN 978-5-496-01079-5.

4.  Пауэрс Ш. Изучаем Node.js. — Питер, 2014 .,- 398 с, ISBN 978-5-496-00356-8.

5.  Мартишин С.А., Симонов В.Л., Храпченко М.В. Методология создания одностраничных приложений — SPA (тезисы доклада). // Материалы XXVI Международной конференции «Применение инновационных технологий в образовании» («ИТО-Троицк-2015»)./ г. Троицк, 24-25 июня 2015 г., стр. 90-92.

6.  Ленгсторф Д. PHP и jQuery для профессионалов.- Вильямс, 2011г., — 334 с. ISBN 978-1-4302-2847-9 / 978-5-8459-1693-8

 

 

Дополнительные возможности: