Диплом: Автоматизация продажи авиабилетов в ООО «Avia Traffic Company»

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
47
проекта. Также опрометчиво думать что участники проекта будут все
своё время тратить на работу над проектом. Для этого есть ряд
объективных причин. К списку наиболее распространённых причин
этого относятся: сопровождение действующих систем, обучение и
повышение квалификации, праздники, больничные, отпуска.
Рекомендуется считать, что реальное время потраченное на проект,
будет в районе 60-80% от всего рабочего времени.
8. Риски разработки. Зависят от квалифицированной подготовки
программистов, знания ими продуктов, а также от выбранной стратегии
и тактики разработки. Типичными ошибками могут быть: отсутствие,
либо реально не работающая система контроля версий, не
использование инструментов отладки кода, не регулируемые права
доступа на тестовые, боевые или девелоперские серверы, работа всех
сотрудников от root пользователя, отсутствие комментариев в коде.
2.1.3. Организационно-правовые и программно-аппаратные средства
обеспечения информационной безопасности и защиты информации
Как уже было выше не раз подмечено, безопасности в компании Avia
Traffic Company уделяют довольно значимое значение. Анализ показал, что все
сервера строго доступны по определённым протоколам для пользователей. Для
доступа же к администрированию используются разрешения на определённые IP
адреса полномочных администраторов. Стоит отметить, что весь комплекс
модулей системы Kerio Control является очень мощным ИТ элементом с точки
зрения безопасности.
Что немаловажно, решением руководства, сайт авиакомпании вынесен в
отдельный виртуальный персональный сервер, поскольку именно с сайтом
работает множество пользователей, и сервер доступен для сети интернет из вне.
Таким образом если вдруг случится взлом, то злоумышленники не получат
доступ во всю внутреннюю ИТ инфраструктуру компании, а соответственно и
доступ к более важным данным авиакомпании.
48
Безопасность является очень важным аспектом и при разработке веб-
приложений. Очень важно обеспечить защиту данных пользователей. Именно
поэтому компанией была выбрана система управления контентом OctoberCMS,
поскольку в ней реализованы все базовые политики безопасности такого
мощного PHP фреймворка, как Laravel. Все эти функции предоставляют собой
различные механизмы для защиты веб-сайта. Давайте рассмотрим некоторые из
них.
Хранение паролей — Laravel предоставляет класс с именем «Hash»,
который обеспечивает безопасное кэширование Bcrypt. Пароль может быть
закэширован следующим образом:
$password = Hash::make('secret');
Функция make() принимает значение в качестве аргумента и возвращает
хешированное значение. Хешированное значение можно проверить с помощью
функции check() следующим образом.
Hash::check('secret', $hashedPassword)
Вышеуказанная функция возвращает логическое значение. Если пароль
совпадает, возвращается true, в противном случае — false.
Аутентификация пользователей. Еще одна основная функция
безопасности в Laravel — аутентификация пользователя и выполнение
определенных действий. Laravel позволяет выполнить эту задачу значительно
проще, для этого мы можем использовать метод Auth::attempt следующим
образом.
if (Auth::attempt(array('email' => $email, 'password' => $password))) {
return Redirect::intended('home');
}
49
Метод Auth::attempt принимает в качестве аргумента учетные данные и
сравнивает их с учетными данными хранящимися в базе данных. Если данные
совпадают, возвращается true, в противном случае — false.
Защита от CSRF (межсайтовой подделки запроса)/XSS кросс-сайтового
скриптинга — атаки с использованием кросс-сайтового скриптинга
осуществляются, когда злоумышленник имеет возможность разместить код
JavaScript на стороне клиента на странице, просматриваемой другими
пользователями. Чтобы защититься от подобного типа атак, мы всегда должны
проверять пользовательские данные и не допускать добавления опасных
сигнатур. В шаблонах Blade следует использовать синтаксис двойной привязки
({{$value}}), {!!$value!!} следует применять, когда вы уверены, что данные
безопасны для отображения без обработки.
Противодействие SQL-инъекциям — уязвимость к SQL-инъекциям
связана с вставкой нефильтрованных произвольных данных пользователя в SQL-
запрос. По умолчанию Laravel защищает нас от такого типа атак, поскольку и
конструктор запросов, и Eloquent используют класс объектов данных PHP (PDO).
PDO использует подготовленные операторы, которые позволяют безопасно
передавать любые параметры без необходимости их удаления и санации.
Cookies — безопасны по умолчанию — Laravel позволяет просто
создавать, читать и отключать файлы cookie с помощью класса Cookie. В Laravel
все файлы cookie автоматически подписываются и шифруются. Это означает, что
если они будут подделаны, Laravel автоматически отвергнет их. Это также
означает, что вы не сможете считать их на стороне клиента с помощью JavaScript.
Ещё одним важным методом защиты является принудительное
использование HTTPS. При обмене конфиденциальными данными — HTTPS
блокирует перехват злоумышленниками в одной сети конфиденциальной
информации, такой как переменные сеанса, и регистрацию с ее помощью от
имени жертвы.
50
Также стоит отметить, что все формы, с которыми работает пользователь
– проходят верификацию, прежде чем будет продолжена работа, и о
несоответствиях в формате, либо правиле применимом к той или иной форме
ввода тут же сообщается пользователю красным цветом.
При ошибке кода, пользователю будет показана стандартная страница
ошибки, а администратор будет оповещён по email, с указанием более подробной
программной ошибки и местом её возникновения (файл и строка кода).
От инсайдерских же угроз, разработанное программное обеспечение по
автоматизации продаж защищено наличием собственного GIT репозитория в
компании, к которому имеет доступ лишь разработчик, то есть я. Да, копия
проекта существует и на моём ноутбуке, который я могу потерять, либо он может
быть украден, но в этом случае ноутбук тоже довольно таки защищен с помощью
шифрования жесткого диска, и если будет подключен в другую систему для
считывания информации, то вряд ли злоумышленник сможет расшифровать всё,
что находится на нём, ведь без использования USB ключа – это невозможно.
Все важные функции разработанного приложения разграничены по
правам доступа, их немного и все они показаны на таблице 3.
Таблица 3
Разграничение прав доступа
Функц
ии
систем
ы
Групп
ы
польз
овате
лей
Посетите
ль сайта
Зарегист
рирован
ный
посетите
ль сайта
Администра
тор системы
Сотрудн
ик
коммер
ческого
отдела
Сотрудни
к
техническ
ой
поддержк
и
Купить билет
Выполнен
ие
Выполнен
ие
-
-
Выполнени
е
Оформить
возврат, обмен
-
Выполнен
ие
-
-
Выполнени
е
Обратная связь
Создание
Создание
Просмотр,
редактирован
ие
-
Ответы
Расписание
-
-
Загрузка,
редактирован
ие
-
-
51
Продолжение таблицы 3
Функц
ии
систем
ы
Групп
ы
польз
овате
лей
Посетите
ль сайта
Зарегист
рирован
ный
посетите
ль сайта
Администра
тор системы
Сотрудн
ик
коммер
ческого
отдела
Сотрудни
к
техническ
ой
поддержк
и
Ключ
-
-
Отправка,
регистрация
-
-
Классификатор
ы
-
-
Загрузка,
редактирован
ие
-
-
Заказы
Просмотр
Просмотр
Редактирован
ие
-
Просмотр
Системы оплат
-
-
Редактирован
ие
-
-
Оповещения
Ограниче
н
Ограниче
н
Редактирован
ие
-
-
Статистика
-
-
Просмотр
Просмот
р
-
Метапоисковик
-
-
Редактирован
ие
-
-
В таблице также не указан разработчик системы, поскольку он(то есть я),
имеет доступ к абсолютно всем функциям системы.
2.2. Информационное обеспечение задачи
2.2.1. Информационная модель и её описание
Рассмотрим таблицы базы данных:
Справочными таблицами являются: Города, Национальности,
Расписание, Платежные шлюзы, Оповещения, Мета поисковики
Оперативными таблицами будут:
Заказы
Обращения
Пользователи
Согласно этому списку, схема информационной модели предоставлена на
рисунке 11.
52
Рисунок 11. Схема информационной модели.
53
Рисунок 11. Продолжение.
54
Как видно на рисунке 11, все справочные таблицы, кроме таблицы
оповещений, - вынесены в отдельный столбик, поскольку к ним есть доступ
только у администратора системы. Что касается таблицы оповещений, то
посетители сайта просматривают и имеют возможность удалять оповещения,
предназначенные для них.
Далее на схеме показано, какие оперативные таблицы используются в
основных представленных формах и какие формы (посредством разграничения
доступа) управляют какими таблицами. Например, у сотрудника коммерческой
службы всего одна форма – по которой он запрашивает выборку каких-либо
статистических данных из таблицы заказов.
Также, прошу обратить внимание, что на выходе только для роли
посетитель, формируется PDF документ – маршрутная квитанция. Этот
документ не является электронным билетом, но служит, как подтверждение
полёта, для большего удобства пассажира.
2.2.2. Характеристика нормативно-справочной, входной и
оперативной информации
Как выше упоминалось, разработанная информационная система имеет
шесть справочных таблиц. Ниже подробно рассмотрим каждую из них на
предмет содержания.
Города. Данная таблица отображает в себе список всех городов, которые
только возможны, с учетом кодов этих городов по международному
авиационную стандарту IATA. Если данная таблица пустая, то предлагается
загрузить эти данные через шлюз WS-Gate используя запрос “describe”. В
результате вернётся xml документ со списком всех городов (3187шт). В таблице
также существует флажок “is_active” установив который, данный город будет
показываться на фронте в форме поиска авиабилета. Редактирование данной
таблицы происходит крайне редко.
Национальности. Данная справочная таблица содержит в себе все
возможные страны, как бы это странно не звучало. Так уж исторически
55
сложилось, что запрос в WS-Gate при бронировании авиабилета несёт в себе
параметр “nationality”, хотя по факту, в нём передаётся код страны, выпустившей
документ (паспорт, свидетельство о рождении и т.д.) пассажира. Заполняется
вручную администратором, с обязательным указанием кода страны по стандарту
IATA. Редактирование данной таблицы происходит крайне редко. В таблице
существует 23 записи.
Расписание. Несёт в себе актуальное расписание полётов авиакомпании с
указанием номера рейса, направления, дат вылета/прилета, а также частотой
выполнения рейса. Загружается в систему также через XML шлюз WS-Gate
запросом “get_schedule”. Данная таблица участвует при генерации календаря для
выбора даты перелёта, и отсекает те даты, в которые полёт по данным
направлениям невозможен, улучшая при этом показатель B2L. Загружается
каждую неделю администратором и содержит в себе порядка 150-200 записей.
Платежные шлюзы. Данная таблица имеет информацию о подключённых
платежных шлюзах. Заводится администратором. Редактируется крайне редко,
поскольку для подключения дополнительных платёжных шлюзов, необходима
доработка по платежной системе и интеграция предоставляемого платёжным
шлюзом API, для корректной работы на сайте. На данный момент возможно
подключение всего одного платёжного шлюза – Platron.
Оповещения. Содержит в себе справочную информацию – советы,
которые показываются пассажиру при работе с системой. Заводится также
администратором системы и редактируется крайне редко. На текущий момент в
таблице значится шесть записей.
Мета поисковики. Таблица для настройки определения запроса на
приобретение авиабилета с сайта партнёра – мета поисковика. Содержит в себе
описание мета поисковика, строку для добавления комментария к брони (с целью
последующего определения отделом бухгалтерии продажи и предоставления
комиссионного вознаграждения сайту партнёру) и прочие настройки.
56
Редактируется крайне редко, и на текущий момент имеет всего одну запись о
мета поисковике Avia Sales.
Для лучшего понимания работы шлюза WS-Gate в и в целях экономии
места пример запроса на получение расписания и ответ WS-Gate на данный
запрос приведён в приложении 2.
2.2.3. Характеристика результатной информации
В качестве результатной информации, помимо документа PDF
маршрутной квитанции, который предоставлен в приложении 3, логично
отобразить экранную форму, которую получает пассажир, после приобретения
авиабилета, показанную на рисунке 12.
Рисунок 12. Заказ пассажира.
Данная форма генерируется на основе таблицы заказов. В самом верху
всегда отображён номер заказа, ниже находится его статус. Далее идет
информация о перелёте, где дата перелёта выделена желтым цветом. Справа в
углу находится информация о номере рейса, а ниже города вылета/прилёта и
местное время каждого аэропорта.
Чуть ниже находится блок с пассажирами и билетами.

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

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