Диплом: Автоматизация управления продажами интернет-магазина для организации "Строй сити трейд"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
68
3. Инструкцию по действиям различных категорий персонала, включая
сотрудников отдела безопасности информации, по ликвидации последствий
кризисных (аварийных или нештатных) ситуаций, в случае их возникновения.
Рассмотрим защиту самого сайта [28].
Политика безопасности
Документы, регламентирующие
работу подсистем:
управления
политикой ИБ
анализа и
управления
рисками
идентификации и
аутентификации
разграничения
доступа
протоколирования и
пассивного аудита
активного аудита
контроля
целостности
данных
контроля
защищенности
сегментирования
ЛВС и межсетевого
экранирования
VPN
антивирусной
защиты
фильтрации
контента
управления
безопасностью
предотвращения
утечки информации
по техническим
каналам
Рис. 2.2 Состав политики безопасности
CSRF — это вид атак на посетителей веб-сайтов, использующий
недостатки протокола HTTP. Если жертва заходит на сайт, созданный
злоумышленником, от её лица тайно отправляется запрос на другой сервер
(например, на сервер платёжной системы), осуществляющий некую
вредоносную операцию (например, перевод денег на счёт злоумышленника). Для
осуществления данной атаки, жертва должна быть авторизована на том сервере,
на который отправляется запрос, и этот запрос не должен требовать какого-либо
69
подтверждения со стороны пользователя.
Данный тип атак, вопреки распространённому заблуждению, появился
достаточно давно: первые теоретические рассуждения появились в 1988 году, а
первые уязвимости были обнаружены в 2000 году.
Одно из применений CSRF — эксплуатация пассивных XSS,
обнаруженных на другом сервере. Так же возможны отправка спама от лица
жертвы и изменение каких-либо настроек учётных записей на других сайтах
(например, секретного вопроса для восстановления пароля).
Для избежания CSRF-уязвимостей используются уникальные ссылки для
действий по изменению данных. В CMS WordPress используется метод
токенизации ссылок. Это означает, что к ссылке активного действия,
прибавляется уникальный параметр, который проверяется при осуществлении
самого действия. В CMS WordPress сгенерировать такой параметр можно
функцией wordpress_get_token(). Проверить — wordpress_valid_token(). Токен
генерируется на основе подаваемого значения, сессии пользователя, а также
приватного ключа сайта, что практически сводит на ноль вероятность генерации
вредителем правильного токена.
Пример использования токена в форме авторизации пользователя
приведен в листинге 2.1.
Листинг 2.1. Пример использования токена в форме авторизации
пользователя
<inputtype="hidden" name="form_build_id" id="form-
<?phpprintwordpress_get_token('user_login_block'); ?>" value="form-
<?phpprintwordpress_get_token('user_login_block'); ?>" />
При регистрации пользователей и работе с материалами производится
проверка правильности всех введенных данных посредством регулярных
выражений (листинг 2).
Листинг 2. Проверка корректности введенных данных
functionuser_register_form_validate($form, &$form_state)
{
$template = iconv("UTF-8","windows-1251","/^[a-zA-Zа-яА-Я][a-zA-Zа-яА-
Я0-9_]*$/"); // проверка логина
70
$login = iconv("UTF-8","windows-1251",$form_state['values']['name']);
$template = iconv("UTF-8","windows-1251","/^([\w\.\-])+@([\w\.\-]+\\.)+[a-
z]{2,4}$/i"); // проверка e-mail
$mail = iconv("UTF-8","windows-1251",$form_state['values']['mail']);
if(!preg_match($template,$mail))
form_set_error('mail', t("Неверно введен
".$form['account']['mail']['#title']."."));
$template = iconv("UTF-8","windows-1251","/^[а-яА-Я]+$/"); // проверка
Ф.И.О.
$surname = iconv("UTF-8","windows-
1251",$form_state['values']['profile_surname']);
$name = iconv("UTF-8","windows-
1251",$form_state['values']['profile_name']);
$family = iconv("UTF-8","windows-
1251",$form_state['values']['profile_family']);
if(!preg_match($template,$surname))
form_set_error('profile_surname', t("Поле ".$form['Личные
данные']['profile_surname']['#title']." может содержать только буквы русского
алфавита."));
if(!preg_match($template,$name))
form_set_error('profile_name', t("Поле ".$form['Личные
данные']['profile_name']['#title']." может содержать только буквы русского
алфавита."));
if(!preg_match($template,$family))
form_set_error('profile_family', t("Поле ".$form['Личные
данные']['profile_family']['#title']." может содержать только буквы русского
алфавита."));
if($form_state['values']['profile_city'] == 0)
form_set_error('profile_city', t("Не выбран
".$form['Адрес']['profile_city']['#title']."."));
$template = iconv("UTF-8","windows-1251","/^\d*$/"); //шаблон проверки
почтового индекса
71
$index = iconv("UTF-8","windows-
1251",$form_state['values']['profile_index']);
if(!preg_match($template,$index))
form_set_error('profile_index', t("Поле
".$form['Контакты']['profile_index']['#title']." может содержать только цифры."));
$template = iconv("UTF-8","windows-1251","/^((\([0-9]{3}\)){0,1}[0-
9]+){0,1}$/"); // проверка номера телефона
$telephone = iconv("UTF-8","windows-
1251",$form_state['values']['profile_telephone']);
if(!preg_match($template,$telephone))
form_set_error('profile_telephone', t("<Поле
".$form['Контакты']['profile_telephone']['#title']." может содержать только цифры
или иметь следующий формат: (код города)телефон."));}
Каждому пользователю системы отводится определенная роль. Таблица
roles в БД содержит список ролей пользователей системы.
Роли системы:
- незарегистрированный пользователь;
- зарегистрированный пользователь;
- продавец.
Роль администратора не описывается в таблице.
Каждой роли соответствует список привилегий, который хранится в
таблице permissions. Привилегии определяют доступ пользователей к элементам
системы: модулям, блокам, материалам и т.д.
В базе данных системы пароли хранятся в зашифрованном виде. Для
реализации данной задачи используется односторонний алгоритм хэширования
md5 (рисунок 2.3) [30].
Рис. 2.3 Пример записей из таблицы users
72
Данный метод отличается тем, что используемый алгоритм
преобразовывает данные только в одну сторону, обратное преобразование
невозможно. Чтобы проверить, правильно ли пользователь ввел пароль,
введенные данные также шифруются, и результат сравнивается с
зашифрованным паролем, хранящимся в базе. Если эти значения совпадают, то
пароль введен верно.
2.2 Информационное обеспечение задачи
2.2.1 Информационная модель и её описание
Под информационной моделью подразумевают схему движения
результативных, входных и промежуточных функций и потоков предметной
области. Также она разъясняет, на основе какой нормативно-справочной
информации и входящих документов осуществляется выполнение функций,
связанных с обработкой данных и формируются определенные выходные
документы.
В качестве информационной модели используется схема данных (ГОСТ
19.701-90), которая указывает путь данных в процессе реализации задач и
определяет стадии обработки, а также различные используемые носители
данных. В такую схему данных включены следующие компоненты:
-· символов данных;
-· символов процесса, необходимого выполнить над данными (символы
процесса могут также указывать функции, которые выполняются
вычислительной машиной);
-· символов линий, указывающих потоки данных между процессами и
(или) носителями данных;
-· определенных символов, использующихся с целью облегчить написание
и чтение схемы [21].
Процесс обработки информации может быть разделен на два этапа:
1. Прием, ввод и обрабатывание первичной входной информации
(паспортные данные, данные организаций, продукции и пр.).
2. Составление отчетов и документов (списки клиентов, работников,
продукции и пр.).
На рисунке 2.4 показано визуальное представление информационной
73
модели.
Форма ввода
«Авторизация»
ИС
Покупатель
Покупатель
Менеджер
Т* «Записи»
Т «Записи»
Т* «Пользователи»
Менеджер
Т «Пользователи»
Т «Товары»
Т «Заказы»
Форма ввода
«Регистрация»
Форма ввода
«Новости или
акции»
Форма ввода
«Добавление
товара»
Форма ввода
«Заказ товара»
Т* «Заказы»
Форма вывода
«Вывод новости
или акции»
Т* «Товары»
Форма вывода
«Вывод товара»
Форма вывода
«Корзина»
Форма вывода
«Просмотр
товара»
Рис. 2.4 Информационная модель
2.2.2 Характеристика нормативно-справочной, входной и
оперативной информации
В качестве входной информации для разрабатываемого сайта служат
ассортимент товаров, данные покупателя, данные каждого товара, оценка товара
покупателем. Данные, которые касаются товара (наименование и ассортимент)
вносит в систему ее администратор.
В систему из ассортимента товара вносятся такие реквизиты:
- наименование категории;
- наименование товара;
О каждой из товарных позиций в систему необходимо внести такие
реквизиты:
- категория;
- наименование;
74
- описание
Количество поступающих данных зависит от числа обратившихся
клиентов их может быть 10 - 20 на протяжении рабочего дня.
В составе ИО предлагаемого комплекса задач важное место отведено
классификаторам экономической информации. Кодирование и классификация
информации позволяют облегчать обработку информации, обеспечить сжатие
идентификатора (предназначенной части) показателей, а значит и сократить
объем информации, сохраняемой в ЭВМ и продолжительность поиска
информации, необходимой для решения задач.
Для реализации полной формализации экономической информации будет
недостаточно простой классификации, поэтому применяется кодирование.
Кодирование представляет собой присвоение условных обозначений
классификационным группам и объектам в соответствии с установленной
системой кодирования [8].
Под системой кодирования подразумевается набор правил, согласно
которым обозначаются объекты и группировки с применением системы кодов
[8].
Кодом считается условное обозначение объектов или группировок в виде
знака или группы знаков согласно принятой системе. Системы кодирования
группируются в 2 подмножества: регистрационные и классификационные
системы кодирования.
В предоставленном дипломном проекте должны быть спроектированы
следующие классификаторы: клиентов, сотрудников, товарного каталога.
Классификатор клиентов и классификатор товаров
1) Классификатор клиентов
На рисунке 2.5 изображена структурная схема классификатора клиентов.
K
1
= [XXXXX]
код клиента
Рис. 2.5 Структурная схема классификатора клиентов
Классификатор клиентов располагает порядковой системой кодирования
Объектом кодирования выступает клиент
Исходная мощность множества: М = 100000
75
Длина кода: L = lg100000 = 5
2) Классификатор товара
Структурная схема классификатора представлена на рисунке 2.6.
K
1
= [XXXXX]
Код документа
Рис. 2.6 Структурная схема классификатора товара
Объектом кодирования считается товар
Исходная мощность множества: М = 100000
В таблице 2.1 приведено сводное описание всех вышеперечисленных
классификаторов.
Таблица 2.1
Сводная таблица применяемых классификаторов и систем кодирования
п/п
Наименование
кодируемого
множества
Значимость
кода
Система
кодирования
Система
классифика
-ции
Вид
классификатор
а
1
Код клиента
5
порядковая
отсутствует
локальный
2
Код товара
5
разрядная
отсутствует
локальный
В данном разделе описываются входные и выходные показателей и
алгоритмы по расчету результатных показателей, используемых в
проектируемой системе. В таблице 2.2 представлены показатели, которые
необходимо выделить в рамках комплекса задач.
Таблица 2.2
Входные показатели в рамках комплекса задач
№ п/п
Наименование входного показателя
Идентификатор
входного показателя
1
Общая численность регистрируемых клиентов
R
i
2
Количество товаров в i-го типа
Z
i
3
Общая численность товаров
N
4
Выручка за j-ый месяц
P
,j
2.2.3 Характеристика результатной информации
Результатными документами системы являются три формы: отчет о
проведенной операции; сообщение о выполненном платеже и сообщение о
невыполненном платеже (рисунки 2.7-2.9).
76
Рис. 2.7 Отчет о выполненной операции
Рис. 2.8 Сообщение о проведенном платеже
Рис. 2.9 Сообщение о не проведенном платеже
2.3 Программное обеспечение задачи
2.3.1 Общие положения (дерево функций и сценарий диалога)
На рисунке 2.10 представлено дерево функций сайта. На схеме
изображены основные и служебные функции.
77
Рис. 2.10 Дерево функций сайта
Такое разделение на основные и служебные функции считается условным,
так как отдельные пользователи на оформление не обращают внимание, их
интересует сам товара и как быстро он к ним попадет, для таких покупателей
важными считаются функции по покупке товара. Такие функции считаются
основными.
Дополнительные возможности, связанные с оформлением и настройкой
личной страницы, считаются дополнительными функциями. Основными
функциями считаются:
- работа с заявками: формирование заявки; изменение ее статуса.
- работа с заказами: создание заказа; заключение договора; выписка счёт-
фактуры; оформление товара; контроль оплаты; доставка товара.
Служебными функциями считаются:

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

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