Що насправді являє собою токен
Коли створюють бота, Telegram повертає рядок із числом, двокрапкою та довгою випадковою послідовністю символів. Кожен запит, який ваше програмне забезпечення надсилає до Telegram, містить цей рядок, а Telegram за ним визначає, чи справді запит надходить від вашого бота.
Другого фактора чи окремого пароля немає. Токен повністю забезпечує автентифікацію, тому поводитися з ним потрібно обережніше, ніж із будь-яким іншим налаштуванням бота.
Число перед двокрапкою є ідентифікатором самого бота й не є секретним. А от частина після двокрапки є.
Що може зробити людина, яка має ваш токен
Вона зможе робити все, що й ваш бот, і саме це часто недооцінюють. Якщо бот є адміністратором вашого каналу, стороння людина з токеном зможе публікувати дописи від вашого імені, видаляти повідомлення й учасників. Вона також зможе читати все, що отримує бот, а в групі це означає повідомлення, до яких йому надали доступ.
Ззовні ніщо з цього не схоже на атаку. Усе виглядає так, наче ваш бот дивно поводиться, тому витік токена часто помічають запізно, після третього дивного допису, а не першого.
Шкода не обмежується безпосередніми наслідками. Якщо бот опублікував для ваших учасників шахрайське посилання, він зруйнував довіру, яку ви будували цілий рік, і жодні подальші пояснення не повернуть її повністю.
Звідки витікають токени
Майже ніколи не через Telegram. Вони потрапляють назовні зі скриншотів, які публікують, просячи допомоги, із коду, завантаженого до загальнодоступного репозиторію, з повідомлення розробнику, який згодом залишає проєкт, і з чату підтримки з кимось, хто чемно попросив токен.
Щоразу повторюється одна й та сама ситуація: токен сприймали як налаштування, а не як секрет. Він лежить у файлі конфігурації поруч із колірною схемою, тож його копіюють так само, як і колірну схему.
Загальнодоступні репозиторії є найпоширенішим джерелом таких витоків, яким до того ж найлегше запобігти. Усе, що схоже на токен, слід зберігати у змінній середовища й ніколи не записувати у файл, який ви додаєте до репозиторію.
Що робити, якщо токен витік
Відкличте його. Коли ви створюєте новий токен для бота в BotFather, старий одразу стає недійсним, а все, що досі використовує старий рядок, припиняє працювати. Спочатку зробіть це, а вже потім з'ясуйте, як стався витік, саме в такому порядку.
Потім перевірте, що відбувалося, поки токен був доступний стороннім: перегляньте останні дописи у своєму каналі, нещодавні видалення зі списку учасників і все, що бот надіслав без вашої участі. Відкликання зачиняє двері, але не скасовує того, що встигло крізь них пройти.
Як платформа має зберігати токен
Якщо ви передаєте токен сервісу, він має зберігатися в зашифрованому вигляді, а не як звичайний текст у базі даних, і ніколи не повинен з'являтися в журналах. У BotLaunch токени ботів та інші конфіденційні дані під час зберігання шифруються за допомогою AES-256, а ви можете будь-коли відкликати й замінити токен через BotFather, не втративши своїх налаштувань.
Цілком доречно запитати про це будь-яку платформу, перш ніж щось вставляти. Якщо платформа не може дати чіткої відповіді, це вже багато про неї говорить.
Коли токен узагалі не потрібен
Більшість людей ніколи не мають справи з токеном. У BotLaunch ви додаєте спільного бота до свого каналу як адміністратора й вмикаєте модулі через вебінтерфейс, тому вам не потрібно створювати бота чи зберігати токен. Підключення власного брендованого бота, для якого й потрібен токен, доступне в платному тарифі для тих, хто хоче використовувати власну назву.