Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет преддипломный.docx
Скачиваний:
3
Добавлен:
10.09.2019
Размер:
552.24 Кб
Скачать

3.4 Информационная модель

Информационная модель- схема взаимодействия входной информации, созданных баз данных (файлов) и выходной информации. Именно информационная модель (схема 1) отражает смысловую суть задачи.

Темы форума

-Код записи

-ID сотрудника

-Название тема

-Текст темы

-Дата создания

…………

Служебные данные

-Код сотрудника

-ID личных данных

-Должность

-Цех/кабинет

-Дата устройства на работу

…………

Личные данные

-Код записи

-ФИО

-Паспортные данные

-ИНН

-Дата рождения

…………

Посты форума

-Код записи

-ID темы

-ID сотрудника

-Дата создания

-Время создания

-Текст поста

…………

Альбомы

-Код записи

-Название альбома

-Дата и время создания

-Название папки

-ID сотрудника

…………

Фотографии

-Код записи

-ID альбома

-ID сотрудника

-Путь к файлу

-Дата и время загрузки

-Описание

…………

Сообщения

-Код сообщения

-ID отправителя

-ID Получателя

-Текст сообщения

Схема 1- Информационная модель

  1. Программное обеспечение задачи

    1. Общие принципы разработки программного продукта

При разработке веб-сайта использовался специальный модуль для работы с базами данных MySQL- MySQLI.

MySQLi (MySQL Improved) — расширение драйвера реляционных баз данных, используемого в языке программирования PHP для предоставления доступа к базам данных MySQL. MySQLi является обновленной версией драйвера PHP MySQL, и дает различные улучшения в работе с базами данных. Разработчики языка программирования PHP рекомендуют использование MySQLi при работе с сервером MySQL версий 4.1.3 или новее (они используют новую функциональность). Основным преимуществом MySQLi является то, что при помощи предварительно объявляемых операторов, могут быть предотвращены так называемые SQL-инъекции.

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

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

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

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

Cookies - это текстовая информация небольшого объема, которая сохраняется на компьютере пользователя по запросу WEB сервера и предается ему при повторных посещениях. Основным назначением cookies является:

  • Организация сессий в ходе работы пользователя с On-Line магазинами, форумами и иными интерактивными системами с Web интерфейсом, например с системами документооборота или почтовыми сервисами с web интерфейсом. В этом случае в cookie хранятся некоторые параметры сессии, например ее уникальный идентификатор;

  • Хранение различных параметров пользователя. Часто в cookie хранятся не сами данные, а некий идентификатор, позволяющий программному обеспечению web сервера опознать пользователя;

  • Идентификация пользователя в рейтинговых системах, счетчиках, системах баннерного показа, on-line голосованиях. Часто применяется как элемент защиты от так называемой «накрутки» счетчиков посещения

Существуют три способа создания cookie:

  1. При помощи поля в заголовке HTTP ответа. В этом случае сервер передает в HTTP ответе одно или несколько полей Set-Cookie: <определение cookies> .

  2. При помощи META тега в заголовке HTML страницы. Тег имеет вид <META HTTP-EQUIV="Set-Cookie" CONTENT=" определение cookies", причем в одной странице таких тегов может быть несколько. Данный тег эквивалентен полю Set-Cookie в заголовке HTTP ответа;

  3. При помощи скриптов  HTML страницы. В JavaScript, к примеру, для доступа к  cookie предусмотрено свойство document.cookie. 

Хранение паролей в базе данных

Как бы хорошо не была защищена база данных, всегда есть вероятность угрозы потери данных или ее кражи. Таким образом, стоит задуматься о защите данных в базе, в случае кражи данные из БД, злоумышленник с легкостью может получить доступ к ресурсу. Появляется необходимость в шифровании данных, а именно шифрование паролей. Хранить пароли в исходном виде не очень разумно. Исходя из этих соображений, хранение паролей ведется в зашифрованном виде, использую функции необратимого шифрования- MD5. Когда пользователь проходит авторизацию, введенный им пароль шифруется и сравнивается с паролем, имеющимся в БД.

Безопасность SQL запросов

При формировании организации запросов к базе данных необходимо проверять и фильтровать данные, которые будут в нём использоваться. В разрабатываемом приложении предусмотрены основные способы защиты от «SQL-Injection» (SQL-инъекций), которые на сегодняшней день являются одной из наиболее опасных атак. Все поступающие данные экранируются, что позволяет сформировать правильный и безопасный SQL-запрос. Также ведется проверка на ключевые слова, используемые в запросах (UNION, JOIN, DROP, SELECT) с целью их сокрытия от использования в запросе.

Вывод данных

При выводе данных пользователю, необходимо его обезопасить от так называемых «XSS-атак». Атакам этого типа, свойственно внедрение javascript-кода, «ворующего» cookie, с целью несанкционированного доступа к ресурсу, а также взлому и порче данных. Используются специальные функции по преобразованию специальных символов HTML в их коды, для безопасного отображения. Также используются функции удаления HTML-тегов. Благодаря реализации данных функций по защите от разного вида атак идет обеспечение безопасности, как БД, так и пользователю.

Индексация поисковыми системами.

Все поисковые роботы при заходе на сайт в первую очередь ищут файл robots.txt.  Это текстовый файл, находящийся в корневой директории сайта (там же где и главный файл index.*), в нем записываются специальные инструкции для поисковых роботов. Эти инструкции могут запрещать к индексации папки или страницы  сайта, указать роботу на главное зеркало сайта, рекомендовать поисковому роботу соблюдать определенный временной интервал индексации сайта и многое другое.

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