Перейти к содержанию

Безопасность и границы доверия

Ключевые зоны доверия

flowchart LR
  publicNet["PublicNetwork"] --> webClients["WebClients"]
  publicNet --> tgClients["TelegramClients"]
  webClients --> apiLayer["API Services"]
  tgClients --> botLayer["telegram_bot_service"]
  apiLayer --> internalNet["InternalServiceNetwork"]
  botLayer --> internalNet
  internalNet --> dataTier["PostgreSQL + Redis + Media Files"]

Механизмы аутентификации

  • auth_service: Token + Session authentication.
  • Большинство сервисов: DRF permissions на IsAuthenticated/IsAuthenticatedOrReadOnly.
  • chat_service и admin_service опираются на Session auth и CSRF-политики.

Критичные риски

  • Часть bot-интеграционных endpoint в order_service допускает AllowAny.
  • В ряде сервисов используются небезопасные дефолты (DEBUG=True, ALLOWED_HOSTS=['*']).
  • Общая БД и прямые импорты моделей увеличивают blast radius при ошибках авторизации.

Обязательные контролы документации

  • Явно фиксировать права доступа по каждому endpoint.
  • Поддерживать каталог ошибок 401/403/404/500 с условиями возникновения.
  • В runbook фиксировать порядок ротации секретов и проверок env.