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

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
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 показано визуальное представление информационной
Источник: https://baza.diplomsite.ru/previewfile/2291