Если бот в Telegram работает через webhook, главный вопрос не только в том, как принять запрос, но и как не пустить лишних. Ниже — практическая схема, которая отвечает на частые запросы: какие IP Telegram whitelist’ить, нужен ли WAF перед webhook, где включать rate limiting и как не сломать доставку обновлений.
1. Какие IP Telegram пускать
Telegram отправляет webhook-запросы не с “любых” адресов, а из своих подсетей. Для защиты инфраструктуры на уровне firewall или security group обычно делают allowlist по IP Telegram и закрывают всё остальное.
Что важно:
- список IP Telegram может меняться, поэтому не стоит “зашивать” его навсегда без процедуры обновления
- whitelist IP — это дополнительная защита, а не единственная
- если у вас облачный балансировщик, ограничение лучше ставить как можно ближе к периметру
2. Не полагайтесь только на IP
Лучший практический слой защиты для webhook в Telegram — это секретный токен webhook. При установке webhook можно передать секрет, а затем проверять заголовок X-Telegram-Bot-Api-Secret-Token.
Почему это важно:
- IP-фильтрация защищает от части трафика
- секретный токен подтверждает, что запрос действительно пришёл в ваш webhook-контур
- если прокси или сеть настроены сложно, токен часто надёжнее, чем логика “доверяем IP”
3. Где ставить WAF
WAF полезен, но не всегда должен “умничать” перед webhook.
Оптимально:
- ставить WAF перед публичной точкой входа — CDN, reverse proxy, ingress
- отключать слишком агрессивные правила для webhook endpoint
- не использовать challenge, captcha, JS-check и другие механики, которые ломают machine-to-machine трафик
Идея простая: WAF должен защищать от аномалий и мусора, но не мешать Telegram доставлять update’ы.
4. Где включать rate limiting
Rate limiting нужен, но с пониманием потока.
Правильный подход:
- rate limit ставят на весь внешний трафик, чтобы отсекать флуд
- для webhook endpoint делают мягкие лимиты или отдельное правило
- Telegram не должен упираться в слишком жёсткий лимит, иначе получите потери update’ов или задержки
Хорошая практика:
- лимит по IP + по URI
- отдельные исключения для allowlist Telegram
- мониторинг 429/403, чтобы сразу видеть, не режете ли вы полезный трафик
5. Безопасная схема инфраструктуры
Надёжный минимальный контур выглядит так:
- Firewall / Security Group: пускаем Telegram IP
- Reverse Proxy / Load Balancer: TLS, логирование
- WAF: только совместимые правила
- Webhook endpoint: проверка X-Telegram-Bot-Api-Secret-Token
- App: быстрая обработка, очередь, idempotency
6. Ключевая ошибка
Самая частая проблема — ставят WAF и rate limiting “как для сайта”. В итоге Telegram получает 403, 429 или таймауты. Webhook — это интеграционный endpoint, а не лендинг.
✅ Вывод: базовая безопасная схема для Telegram webhook — allowlist IP Telegram + secret token + аккуратный WAF + мягкий rate limiting + мониторинг отказов. Именно такая комбинация даёт и защиту, и стабильную доставку обновлений.
📌 Посмотрите подборку Телеграм-каналов, где собраны практические материалы по ботам, инфраструктуре и безопасности.