Share
## https://sploitus.com/exploit?id=F48E3B51-42E6-5D54-A1C1-A9A6148D20D2
# CyberSec Lab — Интерактивный тренажёр по информационной безопасности

![Next.js](https://img.shields.io/badge/Next.js-16-black?logo=next.js)
![TypeScript](https://img.shields.io/badge/TypeScript-5-blue?logo=typescript)
![React](https://img.shields.io/badge/React-19-blue?logo=react)
![Tailwind CSS](https://img.shields.io/badge/Tailwind_CSS-4-38bdf8?logo=tailwindcss)
![License](https://img.shields.io/badge/License-MIT-green)

**Автор:** Дуплей Максим Игоревич (Dupley Maxim Igorevich)
**Учебное направление:** 09.03.04 Программная инженерия

---

## О проекте

CyberSec Lab — это интерактивное веб-приложение для обучения основам информационной безопасности. Проект разработан как учебный тренажёр, позволяющий студентам направления «Программная инженерия» на практике изучить наиболее актуальные угрозы веб-безопасности, методы защиты и принципы безопасной разработки.

Тренажёр содержит **7 обучающих модулей**, систему квизов с таймером, систему достижений, глоссарий терминов и набор интерактивных криптографических инструментов. Все материалы представлены на русском языке и опираются на актуальные стандарты безопасности, включая OWASP Top 10 (2021).

---

## Возможности

### Обучающие модули

| Модуль | Описание |
|--------|----------|
| **OWASP Top 10** | 10 категорий уязвимостей с примерами уязвимого и безопасного кода, реальными кейсами и методами защиты |
| **SQL-инъекции** | 4 интерактивных задания (новичок, продвинутый, эксперт) с визуализацией SQL-запросов |
| **XSS-атаки** | 3 типа XSS (отражённый, хранимый, DOM-based) с интерактивной демонстрацией санитизации |
| **CSRF** | Пошаговая симуляция CSRF-атаки с визуализацией этапов |
| **Аутентификация** | Проверка надёжности паролей, визуализатор брутфорса, демо хеширования, JWT-разбор |
| **Безопасное кодирование** | 5 задач на ревью кода с поиском уязвимостей и предложениями по исправлению |
| **Инструменты** | Шифры Цезаря, Виженера, XOR; кодирование Base64/URL; хеширование; генератор паролей |

### Система тестирования

- **25 вопросов** по 5 категориям безопасности
- Таймер на 30 минут
- Система оценки с разбивкой по темам
- Подробный разбор ответов после завершения

### Достижения и геймификация

- **10 достижений** с условиями разблокировки
- Отслеживание прогресса в реальном времени
- Глоссарий из **34 терминов** с поиском и фильтрацией по категориям

---

## Технологический стек

- **Frontend:** Next.js 16, React 19, TypeScript
- **Стилизация:** Tailwind CSS 4, shadcn/ui
- **Анимации:** Framer Motion
- **Подсветка кода:** React Syntax Highlighter
- **Управление состоянием:** Zustand (с персистентностью через localStorage)
- **Иконки:** Lucide React
- **Сборщик:** Bun

---

## Структура проекта

```
cybersec-lab/
├── src/
│   ├── app/
│   │   ├── layout.tsx          # Корневой layout приложения
│   │   ├── page.tsx            # Главная страница (точка входа в тренажёр)
│   │   ├── globals.css         # Глобальные стили
│   │   └── api/
│   │       └── route.ts        # API-маршруты
│   ├── components/
│   │   ├── security-trainer/
│   │   │   ├── Sidebar.tsx           # Навигационная боковая панель
│   │   │   ├── Dashboard.tsx         # Главная панель с обзором модулей
│   │   │   ├── OWASPTop10.tsx        # Модуль OWASP Top 10
│   │   │   ├── SQLInjectionLab.tsx   # Лаборатория SQL-инъекций
│   │   │   ├── XSSLab.tsx            # Лаборатория XSS-атак
│   │   │   ├── CSRFLab.tsx           # Лаборатория CSRF
│   │   │   ├── AuthSecurityLab.tsx   # Безопасность аутентификации
│   │   │   ├── SecureCodingLab.tsx   # Задачи на безопасное кодирование
│   │   │   ├── ToolsLab.tsx          # Криптографические инструменты
│   │   │   ├── AchievementsGlossary.tsx # Достижения и глоссарий
│   │   │   ├── QuizSystem.tsx        # Система тестирования с таймером
│   │   │   └── CodeBlock.tsx         # Компонент подсветки кода
│   │   └── ui/                 # Библиотека shadcn/ui компонентов
│   ├── lib/
│   │   ├── security-data.ts    # Учебные данные (OWASP, SQL, XSS, квизы)
│   │   ├── store.ts            # Zustand store для управления состоянием
│   │   └── utils.ts            # Утилиты
│   └── hooks/                  # Пользовательские хуки
├── public/
│   ├── security-logo.png       # Логотип проекта
│   └── robots.txt
├── prisma/
│   └── schema.prisma           # Схема базы данных
├── LICENSE                     # Лицензия (English)
├── LICENSE_RU                  # Лицензия (Русский)
├── README.md                   # Документация проекта
├── package.json                # Зависимости и скрипты
├── tsconfig.json               # Конфигурация TypeScript
├── next.config.ts              # Конфигурация Next.js
├── tailwind.config.ts          # Конфигурация Tailwind CSS
└── eslint.config.mjs           # Конфигурация ESLint
```

---

## Установка и запуск

### Требования

- **Node.js** 18.17 или выше
- **Bun** 1.0 или выше (рекомендуется)

### Установка

```bash
# Клонирование репозитория
git clone 
cd cybersec-lab

# Установка зависимостей
bun install
```

### Запуск в режиме разработки

```bash
bun run dev
```

Приложение будет доступно по адресу: [http://localhost:3000](http://localhost:3000)

### Сборка для продакшена

```bash
bun run build
bun run start
```

---

## Использование

1. Откройте приложение в браузере
2. На **панели управления** выберите интересующий модуль
3. Изучайте теорию и выполняйте практические задания
4. Прогресс сохраняется автоматически в localStorage
5. Проверьте свои знания в **системе тестирования** (кнопка «Квиз» в боковом меню)
6. Отслеживайте разблокированные **достижения** и используйте **глоссарий** для уточнения терминов

---

## Лицензия

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

- **Владелец:** Дуплей Максим Игоревич (Dupley Maxim Igorevich)
- См. файлы [LICENSE](./LICENSE) и [LICENSE_RU](./LICENSE_RU) для подробностей.

---

## Контакт

**Дуплей Максим Игоревич**
Направление: 09.03.04 Программная инженерия