Skip to content

🔗 URL Signer

⬅️ Back | 🏠 Docs Root

Модуль url_signer предоставляет сервис для генерации и проверки HMAC-подписанных URL для Telegram Mini Apps в фреймворке codex-bot.


🧠 Почему так?

Безопасность (Защита от подделки)

Когда бот отправляет ссылку на Telegram Mini App (TMA), ему часто нужно передать чувствительные данные (например, request_id, user_id) в URL. Без подписи пользователь может вручную изменить эти параметры для доступа к неавторизованным данным. UrlSignerService использует HMAC-SHA256 для подписи URL, гарантируя, что любое изменение сделает подпись невалидной.

Некоторые ссылки должны быть действительны только в течение короткого периода (например, 5 минут). UrlSignerService включает временную метку (timestamp) в подпись, позволяя установить максимальный возраст ссылки. Это снижает риск повторного использования старых ссылок.


🔄 Поток данных (The Flow)

  1. Генерация: Бот вызывает signer.generate_signed_url(base_url, request_id, action).
  2. Подпись: Сервис создает строку полезной нагрузки (request_id:timestamp) и подписывает ее секретным ключом с помощью HMAC-SHA256.
  3. Сборка URL: Подпись и временная метка добавляются как query-параметры к URL.
  4. Проверка: Когда Mini App получает запрос, он вызывает signer.verify_signed_url(req_id, ts, sig).
  5. Валидация: Сервис пересчитывает подпись и проверяет, находится ли временная метка в пределах лимита max_age.

🗺️ Карта модуля

Компонент Описание
📄 API Reference Технические детали UrlSignerService.
📄 URL Signer Service HMAC-подписанные URL для Mini Apps.

Последнее обновление: 2025-02-07