Техническое задание: Защита системы от исчерпания лимитов внешнего API

В веб-приложении обнаружена проблема: злоумышленники массово инициируют запросы к API внешнего сервиса (ФНС), что приводит к исчерпанию общего лимита и блокировке работы легитимных пользователей. Существующие меры защиты (ограничения по IP, fail2ban) оказались недостаточными.

Контекст и стек технологий

  • Бэкенд и фронтенд: Laravel.
  • Клиент для работы с внешним API: Java (SOAP-клиент).
  • Инфраструктура: Код в GitLab, CI/CD для деплоя в контейнеры.
  • Важное условие: Работа ведется только в ветке dev. Прямого доступа к продакшен-серверам нет, деплой осуществляется администратором через конвейер.

Основные задачи

1. Диагностика и анализ атаки

  • Идентифицировать эндпоинты или цепочки вызовов, которые инициируют обращения к внешнему API.
  • Определить механизм обхода текущих ограничений (по IP, rate limiting).
  • Составить инструкцию по воспроизведению проблемы.

2. Разработка и внедрение системы защиты

  • Реализовать многоуровневое лимитирование: по пользователю, сессии, токену.
  • Внедрить механизм дедупликации идентичных запросов за определенный период.
  • Настроить кэширование допустимых/успешных ответов от API с настраиваемым TTL.
  • Реализовать глобальный счетчик и лимитер всех обращений к внешнему API с механизмом graceful degradation (корректной деградации) при достижении лимита.
  • Добавить контроль за повторными попытками (retry) с экспоненциальной выдержкой (backoff).

3. Повышение наблюдаемости (Observability)

  • Обеспечить детальное логирование каждого обращения к внешнему API с указанием:
    • Инициатора (пользователь, сессия, IP).
    • Выполняемой операции и параметров.
    • Результата (успех, ошибка, попадание в кэш, дедупликация).
    • Времени выполнения.
    • Фактов срабатывания блокировок.
  • Добавить метрики для мониторинга (например, счетчики запросов, попаданий в кэш, срабатываний лимитеров).

Ожидаемые результаты

  • Merge Request (MR): Готовый код с реализованными мерами защиты, направленный в ветку dev.
  • Отчет: Краткий анализ причины уязвимости и описание реализованных защитных механизмов.
  • Инструкция: Документ по настройке параметров системы (величины лимитов, TTL кэша, пороги срабатывания).
  • Чек-лист: Перечень действий для проверки работоспособности системы после деплоя.

Интеграция плагина Caelum в существующий проект на OGRE 3D

Требуется добавить и настроить плагин Caelum для улучшения графики неба и облаков в игре на движке OGRE 3D. Проект имеет устаревшую кодовую базу 2009 года, что создает дополнительные сложности. Необходим специалист, готовый разобраться в legacy-коде.

Разработка чат-бота для кофейни на Python

Требуется создать функционального Telegram-бота для автоматизации заказов в кофейне. Бот должен быть написан на чистом Python и включать в себя админ-панель для управления меню и отслеживания заказов. Подробные технические требования будут предоставлены исполнителю.