Перейти к содержимому
PD
Telegram-боты

Токен Telegram-бота: получение и безопасность

Как получить токен у BotFather, где его хранить, что делать при утечке и какие настройки бота стоит задать сразу после создания.

Все статьи гида Telegram-боты · 13

Токен - это ключ от бота. Кто им владеет, тот и есть бот: может читать входящие сообщения, писать от его имени и менять настройки. Отсюда отношение к хранению.

BotFather по шагам

  1. Создать бота командой создания в диалоге с BotFather.
  2. Задать отображаемое имя. Его видят пользователи, его можно менять потом.
  3. Задать адрес. Уникален, заканчивается на bot, изменить нельзя. Выбирайте осознанно: занятый адрес освободить нельзя, а неудачный останется навсегда.
  4. Получить токен. Приходит сообщением в чат.

Сразу после создания стоит задать ещё несколько вещей, о которых потом забывают:

  • Описание и текст приветствия. Пользователь видит их до первого сообщения, и пустое описание выглядит как заброшенный бот.
  • Список команд. Он появляется в меню и заметно снижает число вопросов.
  • Режим приватности в группах. По умолчанию бот в группе видит не все сообщения, а только адресованные ему. Если бот должен читать всё, режим надо выключить осознанно; если не должен - оставить включённым.
  • Аватар. Мелочь, влияющая на доверие.

Где хранить токен

Правильно: переменная окружения на сервере. Код читает её при запуске.

Тоже приемлемо: файл с настройками вне репозитория, с ограниченными правами доступа.

Неправильно:

  • В коде. Даже во временном виде: временное живёт дольше всего.
  • В репозитории, даже приватном. Приватный репозиторий может стать публичным, а участники меняются.
  • В сообщениях и задачах. Переписка живёт долго и доступна многим.
  • В аргументах команды запуска: попадёт в историю оболочки и в список процессов.

В репозитории должен лежать пример файла настроек с именами переменных и без значений. Это одновременно документация и защита.

Что делать при утечке

Одно действие: перевыпустить токен у BotFather. Старый перестаёт работать немедленно.

Чего делать не нужно, потому что это ничего не даёт:

  • Удалять сообщение с токеном - его могли скопировать.
  • Удалять коммит с токеном - он остаётся в истории и в клонах.
  • Надеяться, что никто не заметил. Публичные репозитории сканируются автоматически, и найденные токены используются в течение минут.

После перевыпуска обновите значение везде, где оно используется: сервер, окружение разработки, CI. Это тот случай, когда список мест лучше знать заранее.

Права бота

Токен даёт полный доступ, поэтому ограничения выстраиваются вокруг него, а не внутри.

Отдельный бот для тестов. Разработка и продакшен не должны делить один токен: иначе тестовое сообщение уйдёт реальным пользователям.

Права в группе - минимальные. Если боту нужно только отправлять сообщения, права администратора ему не нужны. Права на удаление и блокировку выдаются, только когда без них нельзя.

Проверка администраторов на своей стороне. Список тех, кому можно управлять ботом, живёт в вашей конфигурации, а не в предположении, что кнопка админского меню видна не всем - см. кнопки.

Вебхук только по HTTPS и с секретом в адресе или заголовке - см. деплой.

Как узнать идентификатор чата и чем он отличается от идентификатора пользователя - chat id. Обзор - гид по Telegram-ботам.

Вопросы и ответы

Где взять токен для Telegram-бота?

У BotFather: создаёте бота командой создания, задаёте имя и адрес, в ответ приходит токен. Он показывается в переписке, поэтому её лучше не пересылать и не показывать на демонстрации экрана. При необходимости токен можно перевыпустить, старый сразу перестанет работать.

Что делать, если токен бота утёк?

Немедленно перевыпустить его у BotFather. Старый перестаёт работать сразу, и это единственная действенная мера. Удаление сообщения с токеном из чата или коммита из ветки ничего не даёт: он уже мог быть скопирован.

Можно ли хранить токен в коде?

Нет. Токен даёт полный контроль над ботом: читать сообщения, писать от его имени, менять настройки. Место токена - переменная окружения на сервере, а в репозитории должен лежать только пример файла настроек без значений.

Ещё по теме

Сделаю под ключ

Сделаю Telegram-бота под ваш процесс

Заявки, оплата, выдача доступа, рассылки и воронка в одном боте, с админкой для вас.

от 300 $ · 3-7 дней

Похожий кейсTelegram-бот воронки продаж для онлайн-курсовTelegram-бот, который ведёт всю воронку - лид-магнит → гайд → интенсив → курс - с оплатой, автовыдачей доступа и админ-панелью.

«Действительно гуру своего дела. Узнал массу новой и полезной информации по телеграм рассылкам. До этого сжег очень много денег на оплате услуг посредников, но после общения с исполнителем буду делать все сам)»

viktorTR · Kwork