В прошлом аренда в основном осуществлялась через объявления в газетах и на досках объявлений или через друзей и родственников. Арендодатели размещали объявления в газетах и на досках объявлений с описанием жилья, ценой аренды и контактными данными. Этот метод отнимал много времени и был неудобен для обеих сторон, а также мог предоставить меньше информации о жилье и его условиях, чем в приложениях по аренде жилья.
С развитием технологий и интернета люди все чаще ищут и арендуют жилье онлайн. Web-приложение для аренды жилья может значительно упростить этот процесс, позволяя пользователям искать и сравнивать различные варианты жилья и взаимодействовать с арендодателями.
Целью выпускной квалификационной работы является создание web- приложения, с помощью которого пользователи могут сдавать и брать в аренду жилье. В приложении пользователи должны иметь возможность для общения с арендодателем и поиска объявлений об аренде жилья по заданным параметрам. Приложение должно быть реализовано с элементами защиты персональных данных. Для достижения поставленной цели необходимо выполнить ряд взаимосвязанных задач:
1) анализ предметной области разработки, анализ функционала аналогичных web-приложений;
2) анализ методов защиты web-приложения и данных пользователей;
3) выбор технологий и средств разработки приложений для реализации web-приложения;
4) проектирование и разработка web-приложения;
5) внедрение методов защиты данных в web-приложение;
6) функциональное тестирование приложения.
ВВЕДЕНИЕ..................................................................................................... 4
1. Описание предметной области............................................................ 5
1.1. Анализ существующих аналогов........................................................ 5
1.2. Анализ методов защиты web-приложений......................................... 7
2. Используемые технологии................................................................. 10
3. Архитектура приложения и модель хранения данных.................... 13
4. Разработка клиентской части приложения....................................... 17
4.1. Главная страница web-приложения.................................................. 18
4.2. Страница с поиском объявлений....................................................... 20
4.3. Страница объявления об аренде жилья............................................ 21
4.4. Окно регистрации, входа в личный кабинет и подтверждения почты 24 4.5. Страница личного кабинета пользователя....................................... 27
5. Разработка серверной части приложения......................................... 31
5.1. Реализация функции регистрации пользователя.............................. 32
5.2. Реализация функции входа в аккаунт пользователя и сброса пароля . 34
5.3. Реализация функции поиска объявлений по заданным параметрам....... 35
5.4. Реализация функции отправки сообщения....................................... 35
5.5. Реализация методов шифрования..................................................... 36
6. Функциональное тестирование web-приложения............................. 39
6.1. Тестирование функций входа в аккаунт и регистрации................... 39
6.2. Тестирование функции поиска по фильтрам и корректности отображения информации 42
6.3. Тестирование функций, доступных в личном кабинете пользователя 44 6.4. Тестирование элементов безопасности.............................................. 47
ЗАКЛЮЧЕНИЕ............................................................................................. 49
СПИСОК ЛИТЕРАТУРЫ............................................................................. 55
ПРИЛОЖЕНИЯ............................................................................................. 57
Приложение 1. Метод Validation.................................................................. 57
Приложение 2. Метод Register...................................................................... 57
Приложение 3. Сервис MailService............................................................... 58
Приложение 4. Метод SignIn........................................................................ 59
Приложение 5. Метод SignInTwoFactor....................................................... 60
Приложение 6. Класс JWT............................................................................ 60
Приложение 7. Метод Search........................................................................ 61
Приложение 8. Класс CipherService......................................................................... 63
1) JSON Web Token Introduction - jwt.io [сайт]. — 2023. — URL: https://jwt.io/introduction (дата обращения 10.05.2023). – Текст : электронный.
2) Что такое протокол HTTPS, и как он защищает вас в интернете — Блог Яндекса [сайт]. — 2023. — URL: https://yandex.ru/blog/company/77455 (дата обращения 11.05.2023). – Текст : электронный.
3) SQL-инъекция и как ее предотвратить [сайт]. — 2023. — URL: https://www.kaspersky.ru/resource-center/definitions/sql-injection (дата обращения 12.05.2023). – Текст : электронный.
4) Cross Site Scripting (XSS) | OWASP Foundation [сайт]. — 2023. — URL: https://owasp.org/www-community/attacks/xss/ (дата обращения 13.05.2023). – Текст : электронный.
5) DotNet Security - OWASP Cheat Sheet Series [сайт]. — 2023. — URL: https://cheatsheetseries.owasp.org/cheatsheets/DotNet_Security_Cheat_Sheet.html (дата обращения 10.05.2023). – Текст : электронный.
6) Обзор Entity Framework Core — EF Core | Microsoft Docs [сайт]. — 2023. — URL: https://docs.microsoft.com/ru-ru/ef/core/ (дата обращения 10.05.2023). – Текст : электронный.
7) Introducing JSX – React [сайт]. — 2023. — URL: https://legacy.reactjs.org/docs/introducing-jsx.html#jsx-prevents-injection-attacks (дата обращения 10.05.2023). – Текст : электронный.
8) Компоненты и пропсы – React [сайт]. — 2023. — URL: https://ru.legacy.reactjs.org/docs/components-and-props.html (дата обращения 10.05.2023). – Текст : электронный.
9) Введение в REST API — RESTful веб-сервисы / Хабр [сайт]. — 2023. — URL: https://habr.com/ru/post/483202/ (дата обращения 12.05.2023). – Текст : электронный.
10) Rest API: что это такое — объясняем простыми словами [сайт]. — 2023. — URL: https://qna.habr.com/q/282878 (дата обращения 11.05.2023). – Текст : электронный.
11) Что такое модель MVC? OTUS [сайт]. — 2023. — URL: https://otus.ru/journal/chto-takoe-model-mvc/ (дата обращения 29.03.2023). – Текст : электронный.
12) Что такое реляционная база данных? – Amazon Web Services (AWS) [сайт]. — 2023. — URL: https://aws.amazon.com/ru/relational-database/ (дата обращения 10.05.2023). – Текст : электронный.
13) ER-диаграммы – Lucidchart [сайт]. — 2023. — URL: https://lucidchart.zendesk.com/hc/ru/articles/207299756-ER-диаграммы (дата обращения 10.05.2023). – Текст : электронный.
14) Использование диаграммы вариантов использования UML при проектировании программного обеспечения / Хабр [сайт]. — 2023. — URL: https://habr.com/ru/articles/566218/ (дата обращения 10.05.2023). – Текст : электронный.
15) Условия использования API Геокодера. Геокодирование [сайт]. — 2023. — URL: https://yandex.ru/dev/maps/geocoder/doc/desc/concepts/limits.html (дата обращения 10.05.2023). – Текст : электронный.
16) Что такое веб-тестирование? Типы тестирования веб приложений / Хабр [сайт]. — 2023. — URL: https://habr.com/ru/articles/715376/ (дата обращения 17.05.2023). – Текст : электронный.
17) Protect: защита от недоверенных сертификатов. Справка [сайт]. — 2023. — URL: https://browser.yandex.ru/help/security/untrusted-sertificates.html (дата обращения 17.05.2023). – Текст : электронный.