Перейти к основному содержимому

Архитектура безопасности

Поток аутентификации

1. Telegram WebApp предоставляет initData (подписан Telegram)

2. Фронтенд отправляет initData на бэкенд

3. Бэкенд проверяет HMAC-подпись с помощью BOT_TOKEN

4. Бэкенд генерирует JWT-токен (срок действия 1 год)

5. Фронтенд хранит токен в памяти (не в localStorage)

6. Все API-запросы включают заголовок Authorization

7. Бэкенд проверяет JWT при каждом запросе

Этот многоуровневый подход предотвращает несанкционированный доступ.


Уровни аутентификации

1. Telegram WebApp Authentication

  • HMAC-подпись — Telegram подписывает данные пользователя
  • Проверка на сервере — Бэкенд валидирует подпись с помощью BOT_TOKEN
  • Защита от подделки — Невозможно сфальсифицировать данные Telegram

2. JWT Tokens

  • Криптографическая подпись — Токены подписаны секретным ключом
  • Срок действия — Автоматическое истечение через 1 год
  • Хранение в памяти — Не сохраняются в localStorage для безопасности
  • Bearer-схема — Стандартный заголовок Authorization

3. TON Wallet Proof

  • Криптографическое доказательство — Кошелёк подписывает challenge
  • Проверка подписи — Бэкенд валидирует владение кошельком
  • Привязка адреса — Адрес сохраняется в профиле пользователя
  • Мультикошелёк — Поддержка нескольких кошельков на аккаунт

Защита данных

Шифрование

  • TLS/HTTPS — Весь трафик зашифрован при передаче
  • WSS (WebSocket Secure) — Защищённые WebSocket-соединения
  • JWT-подписание — Токены криптографически подписаны

Валидация входных данных

  • Joi-схемы — Строгая валидация всех пользовательских данных
  • Типизация TypeScript — Проверка типов на этапе компиляции
  • Санитизация — Очистка данных перед обработкой

Защита от атак

  • SQL Injection — Параметризованные запросы через Prisma ORM
  • XSS (Cross-Site Scripting) — Автоматическое экранирование React
  • CSRF (Cross-Site Request Forgery) — Telegram initData как CSRF-токен
  • Rate Limiting — Ограничение частоты запросов per endpoint

Безопасность файлов

  • Валидация типов — Только PDF, JPEG, PNG
  • Ограничение размера — Защита от DoS через большие файлы
  • IPFS — Неизменяемое хранилище предотвращает подмену
  • Content Addressing — Файлы идентифицируются по хешу содержимого

Безопасность блокчейна

Проверка владения кошельком

  • Wallet Proof Protocol — Стандартизированная проверка TON Connect
  • Подпись challenge — Кошелёк подписывает уникальное сообщение
  • Временные метки — Защита от replay-атак

Смарт-контракты

  • Неизменяемость — Код контракта нельзя изменить после деплоя
  • Аудит операций — Все действия записаны в блокчейн
  • Подпись пользователя — Каждая транзакция требует одобрения
  • Прозрачность — Публичная история всех операций

Мониторинг безопасности

Логирование

  • Структурированные логи — Все события с метаданными
  • Audit trail — Полная история действий пользователей
  • Алертинг — Уведомления о подозрительной активности

Проверки

  • Health checks — Мониторинг состояния системы
  • Integrity checks — Проверка целостности данных
  • Security scanning — Регулярное сканирование уязвимостей

Лучшие практики

Минимальные привилегии — Каждый компонент имеет только необходимые права ✅ Глубокая защита — Множественные уровни безопасности ✅ Fail-safe — Безопасные дефолты при ошибках ✅ Регулярные обновления — Своевременное обновление зависимостей ✅ Секреты в переменных окружения — Никаких ключей в коде