🔗 URL Signer
Модуль url_signer предоставляет сервис для генерации и проверки HMAC-подписанных URL для Telegram Mini Apps в фреймворке codex-bot.
🧠 Почему так?
Безопасность (Защита от подделки)
Когда бот отправляет ссылку на Telegram Mini App (TMA), ему часто нужно передать чувствительные данные (например, request_id, user_id) в URL. Без подписи пользователь может вручную изменить эти параметры для доступа к неавторизованным данным. UrlSignerService использует HMAC-SHA256 для подписи URL, гарантируя, что любое изменение сделает подпись невалидной.
Срок действия (Time-Limited Links)
Некоторые ссылки должны быть действительны только в течение короткого периода (например, 5 минут). UrlSignerService включает временную метку (timestamp) в подпись, позволяя установить максимальный возраст ссылки. Это снижает риск повторного использования старых ссылок.
🔄 Поток данных (The Flow)
- Генерация: Бот вызывает
signer.generate_signed_url(base_url, request_id, action). - Подпись: Сервис создает строку полезной нагрузки (
request_id:timestamp) и подписывает ее секретным ключом с помощью HMAC-SHA256. - Сборка URL: Подпись и временная метка добавляются как query-параметры к URL.
- Проверка: Когда Mini App получает запрос, он вызывает
signer.verify_signed_url(req_id, ts, sig). - Валидация: Сервис пересчитывает подпись и проверяет, находится ли временная метка в пределах лимита
max_age.
🗺️ Карта модуля
| Компонент | Описание |
|---|---|
| 📄 API Reference | Технические детали UrlSignerService. |
| 📄 URL Signer Service | HMAC-подписанные URL для Mini Apps. |
Последнее обновление: 2025-02-07