АННОТАЦИЯ 2
ВВЕДЕНИЕ 7
1 МЕТОДЫ И СПОСОБЫ ПОСТРОЕНИЯ МОДЕЛИ ИНТЕРЬЕРА 9
1.1 Использование 3D печати для построения моделей 9
1.1.1 3D принтеры компании Stratasys 9
1.1.2 FFF и PJP принетры 9
1.1.3 Принцип работы FDM печати 10
1.1.4 Подпорки, бримы и рафты 12
1.1.5 Принцип работы SLA печати 13
1.1.6 Принцип работы лазерного спекания 13
1.2 Существующие веб-приложения для 3D моделирования комнат 14
1.2.1 Анализ веб-приложение Planoplan 14
1.2.2 Анализ веб-приложения Planner 5D 16
1.3 Технология WebGL 18
1.3.1 Достоинства WebGL 18
1.3.2 Поддержка браузерами 18
1.3.3 Преимущества использования WebGL 19
1.3.4 Фреймворки для разработки на WebGL 19
1.3.5 Библиотека WebGLU 20
1.3.6 Библиотека GLGE 20
1.3.7 Библиотека Three JS 21
1.3.8 Библиотека Babylon JS 22
1.4 Уязвимости веб-приложений 23
1.4.1 Инъекции 24
1.4.2 Недочеты системы аутентификации и хранения сессий 25
1.4.3 Разглашение конфиденциальных данных 25
1.4.4 Внешние сущности XML 26
1.4.5 Недостатки контроля доступа 26
1.4.6 Некорректная настройка параметров безопасности 26
1.4.7 Межсайтовое выполнение сценариев 27
1.4.8 Небезопасная десериализация 27
1.4.9 Использование компонентов с известными уязвимостями ... 27
1.4.10 Недостатки журналирования и мониторинга 27
1.5 Техническое задание 28
1.5.1 Назначение разработки 28
1.5.2 Входные данные 28
1.5.3 Основные функции 28
1.5.4 Выходной результат 30
1.5.5 Требования к составу и параметрам технических средств . ... 30
1.5.6 Структура базы данных 31
1.5.7 Структура файла *.home 31
1.5.8 Предварительный интерфейс 31
1.6 Выводы по главе 34
2 РЕАЛИЗАЦИЯ ВЕБ-ПРИЛОЖЕНИЯ ПО СОСТАВЛЕННОМУ
ТЕХНИЧЕСКОМУ ЗАДАНИЮ 36
2.1 Краткая справка three.js 36
2.1.1 Сцена 36
2.1.2 Камера 36
2.1.3 Рендер 42
2.1.4 3D модели 42
2.1.5 Текстура 43
2.2 Реализация клиентской части 44
2.2.1 Рендер 44
2.2.2 Камера 45
2.2.3 Комната 45
2.2.4 Разметка страницы 47
2.2.5 Предметы мебели 47
2.2.6 Регистрация 48
2.2.7 Авторизация 50
2.2.8 Главная страница 51
2.3 Реализация серверной части 52
2.3.1 Аутентификация пользователя 53
2.3.2 Регистрация пользователя 54
2.3.3 Главная страница 55
2.4 Вывод по главе 55
3 ТЕСТИРОВАНИЕ ВЕБ-ПРИЛОЖЕНИЯ ДЛЯ МОДЕЛИРО¬
ВАНИЯ ИГРУШЕЧНОГО ДОМИКА В ФОРМАТЕ 3D 56
3.1 Тестирование работы в разных браузерах 56
3.2 Анализ веб-приложения на защиту от атак 57
3.3 Выводы по главе 58
ЗАКЛЮЧЕНИЕ 59
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 60
ПРИЛОЖЕНИЯ 62
ПРИЛОЖЕНИЕ 1. Серверная часть 62
ПРИЛОЖЕНИЕ 2. Главная страница приложения 74
ПРИЛОЖЕНИЕ 3. Страница регистрации 88
ПРИЛОЖЕНИЕ 4. Страница авторизации 90
В современном мире компьютерные технологии прочно вошли в нашу жизнь. Через интернет начали делать почти все: заказывать еду, покупать вещи, бронировать отели, создавать дизайн квартир. Также с 2010 года активно развивается сфера 3D печати, но, к сожалению, отсутствует сервисы в сети интернет осуществляющие 3D печать.
Цель данной работы разработать и реализовать веб-приложение для создания 3D модели игрушечного домика с последующее распечаткой на 3D принтере.
Для достижения цели необходимо решить следующие задачи:
- выбор метода 3D печати;
- анализ существующих веб-приложений для 3D моделирования комнат;
- анализ уязвимостей веб-приложения;
- выбор и изучение библиотеки для работы с WebGL;
- разработка и реализация веб-приложения.
Поскольку 3D печать осуществляется с помощью программ-слайсеров, которые нарезают 3D модель на слои, то для 3D печати нужно использовать определенный формат 3D модели. Проанализированные веб-приложения для 3D моделирования комнат не имеют возможность сохранения комнаты как 3D модели в нужном формате. Поэтому было предложено создать такой сервис, который позволит создавать 3D модель комнаты в нужном формате.
В первой главе проанализированы существующие методы 3D печати, существующие веб-приложения для 3D моделирования и библиотеки для работы с WebGL, уязвимости веб-приложений, на основе чего приняты решения о выборе методе 3D печати, выборе библиотеки для работы с WebGL, выборе методов защиты веб-приложения для 3D моделирования игрушечного домика с последующей распечаткой на 3 D принтере, а также составлено техническое задание на разработку веб-приложения игрушеного домика с последующей распечаткой на 3D принтере.
Во второй главе приведена реализация серверной и клиентской частей веб-приложения для 3D моделирования игрушечного домика с последующей распечаткой на 3D принтере.
В третьей главе представлен результат работы веб-приложения для 3D моделирования игрушечного домика с последующей распечаткой на 3D принтере, тестирование и анализ проведенных тестов.
Цель выпускной квалификационной работы состояла в создании веб - приложения для моделирования игрушечного домика в формате 3D с последующей распечаткой на 3D принтере.
Для достижения поставленной цели, необходимо было провести комплекс взаимосвязанных задач:
- выбор метода 3D печати;
- анализ существующих веб-приложений для 3D моделирования комнат;
- анализ уязвимостей веб-приложения;
- выбор и изучение библиотеки для работы с WebGL;
- разработка и реализация веб-приложения.
При выборе метода 3D печати, были изучены современные методы 3 D печати, выделены их преимущества и недостатки и в итоге приобретен 3D принтер. При анализе существующих веб-приложений для 3D моделирования были выявлены их преимущества и недостатки. При анализе уязвимостей веб-приложений были выбраны методы защиты разрабатываемого веб-приложения. На основе вышеперечисленного было составлено техническое задание. Далее были разработаны клиентская и серверная части. После чего были проведены тесты и проанализирована система безопасности на предмет уязвимостей из списка OWASP TOP-10, по результатам которых было выявлено, что приложение является кроссбраузерным, а также не имеет уязвимостей перечисленных в списке OWASP TOP-10.
В итоге было реализовано кроссбраузерное защищенное от 10 самых распространенных атак по мнению OWASP веб-приложение для для 3D моделирования игрушечного домика с последующей распечаткой на 3D принтере.