Архитектура безопасности
Поток аутентификации
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 — Безопасные дефолты при ошибках ✅ Регулярные обновления — Сво евременное обновление зависимостей ✅ Секреты в переменных окружения — Никаких ключей в коде