diff --git a/.idea/.name b/.idea/.name
new file mode 100644
index 0000000..786c7a2
--- /dev/null
+++ b/.idea/.name
@@ -0,0 +1 @@
+software_testing_lab_4
\ No newline at end of file
diff --git a/.idea/GitScopePro.xml b/.idea/GitScopePro.xml
new file mode 100644
index 0000000..4a8b7f1
--- /dev/null
+++ b/.idea/GitScopePro.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/README.md b/README.md
index 18eee9a..21b4d8d 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,4 @@
+[](https://classroom.github.com/a/NSTTkgmb)
# Лабораторная работа №4 — Анализ и тестирование безопасности веб-приложения
## Цель
diff --git a/report.md b/report.md
new file mode 100644
index 0000000..ec14e58
--- /dev/null
+++ b/report.md
@@ -0,0 +1,316 @@
+## 1. Asset Inventory
+
+| Актив | Тип | Ценность | Описание |
+ |--------------------------------|----------------|-------------|--------------------------------------------------------|
+| Данные пользователей | Данные | Высокая | Возможна утечка персональных данных и эксплуатация XSS |
+| Данные пользовательских сессий | Данные | Высокая | Раскрывают поведенческие паттерны пользователей |
+| Файловая система сервера | Инфраструктура | Критическая | Подвержена атаке Path Traversal |
+| Внутренние сетевые ресурсы | Инфраструктура | Критическая | Могут быть скомпрометированы через SSRF |
+| REST API | Приложение | Высокая | Основная точка взаимодействия с системой |
+| Логи приложения | Данные | Средняя | Могут содержать чувствительную информацию |
+
+---
+
+## 2. Threat Modeling (STRIDE)
+
+| Категория | Применимость | Поверхность атаки | Потенциальный ущерб |
+|------------------------|--------------|--------------------------------------------|---------------------------------|
+| Spoofing | Да | Все эндпоинты | Подмена пользователей |
+| Tampering | Да | `/register`, `/recordSession` | Изменение аналитических данных |
+| Repudiation | Да | Отсутствие логирования | Невозможность доказать действия |
+| Information Disclosure | Да | `/userProfile`, `/exportReport`, `/notify` | Утечка конфиденциальных данных |
+| Denial of Service | Да | Все эндпоинты | Перегрузка сервера |
+| Elevation of Privilege | Да | `/notify`, `/exportReport` | Доступ к внутренним ресурсам |
+
+---
+
+## 3. Найденные уязвимости
+
+### Finding 1: Stored Cross-Site Scripting (XSS)
+
+| Параметр | Значение |
+|-------------|--------------------------------------------------|
+| Компонент | `/userProfile` |
+| CWE | CWE-79 |
+| CVSS | 6.1 MEDIUM (AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N) |
+| Критичность | Medium |
+| Статус | Confirmed |
+
+**Описание:**
+
+Имя пользователя (`userName`) сохраняется в системе и затем отображается в HTML-ответе эндпоинта `/userProfile` без
+экранирования. Это позволяет злоумышленнику внедрить вредоносный JavaScript-код, который будет выполняться в браузере
+других пользователей. Проблема возникает из-за отсутствия HTML-экранирования пользовательского ввода.
+
+**Шаги воспроизведения:**
+
+1. Зарегистрировать пользователя с вредоносным именем:
+ ```
+ curl -X POST "http://localhost:7000/register?userId=xss&userName="
+ ```
+2. Открыть профиль пользователя:
+ ```
+ curl "http://localhost:7000/userProfile?userId=xss"
+ ```
+3. Ожидаемый результат: HTML-теги экранированы, скрипт не выполняется.
+ Фактический результат: в ответе присутствует тег `";
+
+ Unirest.post("http://localhost:7000/register")
+ .queryString("userId", "xss")
+ .queryString("userName", malicious)
+ .asString();
+
+ HttpResponse response = Unirest.get("http://localhost:7000/userProfile")
+ .queryString("userId", "xss")
+ .asString();
+
+ assertEquals(200, response.getStatus());
+ assertFalse(response.getBody().contains("