Безпека ботів

Цю статтю ми вирішили опублікувати для всіх тих, хто володіє ботами або тільки складає ТЗ для програмістів. Вона ближче познайомить вас з тими правилами безпеки, яких ви повинні дотримуватися при роботі зі своїми ботами, серверами і кодом.

Чи варто тобі хвилюватися за збереження даних, за надійну і стабільну роботу твого розумного помічника?

Сьогодні ми і наші досвідчені розробники, дамо кілька порад на тему безпеки в Telegram ботах.

Не заощаджуйте на сервері

Бот — це звичайна програма (скрипт), яка повинна бути запущена на будь-якому пристрої. Розуміючи це, багато адмінів вирішують тримати бота на своєму власному комп’ютері, що вкрай ненадійно і нестабільно. Ми рекомендуємо орендувати найпростіший віддалений сервер (VPS). $5/місяць цілком достатньо — досить невелика плата за можливість спати спокійно, знаючи, що твій бот буде працювати 24/7.

1 аккаунт — 1 бот

Для кожного бота реєструй окремий акаунт Telegram. Дуже просте правило з не дуже очевидним наслідками:

  • У разі блокування/видалення твого основного аккаунта — бот не постраждає.
  • Якщо захочеш продати своє дітище — зробити це буде простіше простого!

Важливо — акаунти потрібно реєструвати на фізичні SIM-карти, віртуальні (одноразові) номери дуже швидко блокуються!

Не пали IP свого серверу

Дізнавшись твій IP, конкуренти неодмінно скористаються цим, провівши DDoS-атаку (завалять сервер величезною кількістю запитів). Якщо твій бот супроводжується сайтом (або сайт супроводжується ботом) — тримай їх на різних серверах!

Додай захист від множинних натискань

Якщо твій бот містить в собі команди, які вимагають багато часу для виконання (робота зі сторонніми API і т.д.), обов’язково обмежуй користувачів в кількості дій, які вони можуть зробити за одиницю часу. В іншому випадку — завжди знайдеться кілька недобросовісних користувачів, які почнуть клацати на все підряд і спостерігати за падінням твого бота.

Не забувай про класичні вразливості

SQL injection ніхто не відміняв) Розробляючи бота, необхідно дотримуватися тих же правил, що і при розробці сайту, особливо це стосується панелі управління (адмінки). Найактуальнішою вразливістю при розробці розумних помічників є Race condition.

7 разів відміряй — 1 раз збережи

Ефективне зберігання даних в базі — одна з ключових вимог для стабільної роботи бота. При збільшенні кількості записів (користувачів, об’єктів і т.д.) — збільшується займана пам’ять на сервері, а при нераціональній архітектурі бази — швидкість зростання розміру твого сховища просто астрономічна.

Підключи Backup

Функція автоматичного створення бекапів є практично на всіх популярних хостингах і коштує всього 1 долар в місяць. Не скупися і підключи цю можливість. Якщо раптом щось піде не так, то ти завжди зможеш відкотитися до старої версії, це краще ніж втратити все.