Эту статью мы решили опубликовать для всех тех, кто владеет ботами или только составляет ТЗ для программистов. Она ближе познакомит вас с теми правилами безопасности. Вы должны соблюдать их при работе со своими ботами, серверами и кодом.
Стоит ли тебе волноваться за сохранность данных, за надежную и стабильную работу твоего умного помощника?
Сегодня мы и наши опытные разработчики, дадим пару советов на тему безопастности в Telegram ботах.
Не экономь на сервере.
Бот - это обычная программа (скрипт), которая должна быть запущена на каком-либо устройстве. Понимая это, многие админы решают держать бота на своем собственном компьютере. Это крайне ненадежно и нестабильно. Мы рекомендуем арендовать самый простенький удаленный сервер (VPS). $5/месяц вполне достаточно. Это довольно небольшая плата за возможность спать спокойно. И знать что твой бот будет работать 24/7.
1 аккаунт - 1 бот.
Для каждого бота регистрируй отдельный аккаунт Telegram. Очень простое правило с не очень очевидным следствиями:
- В случае блокировки/удаления твоего основного аккаунта - бот не пострадает.
- Если захочешь продать свое детище - сделать это будет проще простого!
Важно - аккаунты нужно регистрировать на физические SIM-карты. Виртуальные (одноразовые) номера очень быстро блокируются!
Не пали IP своего сервера.
Узнав твой IP, конкуренты непременно воспользуются этим, проведя DDoS-атаку (завалят сервер огромным количеством запросов). Если твой бот сопровождается сайтом (либо сайт сопровождается ботом) — пользуйся для этого разными серверами!
Добавь защиту от множественных нажатий.
Если твой бот содержит в себе команды, которые требуют большого времени для исполнения (работа со сторонними API и т.д.), обязательно ограничивай пользователей в количестве действий, которые они могут произвести за единицу времени. В противном случае - всегда найдется несколько недобросовестных юзеров. Они начнут клацать на все подряд и наблюдать за падением твоего бота.
Не забывай о классических уязвимостях.
SQL injection никто не отменял) Разрабатывая бота, необходимо придерживаться тех же правил, что и при разработке сайта. Особенно это касается панели управления (админки). Самой актуальной уязвимостью при разработке умных помощников является Race condition.
7 раз отмерь - 1 раз сохрани.
Эффективное хранение данных в базе - одно из ключевых требований для стабильной работы бота. При увеличении количества записей (пользователей, объектов и т.д.) - увеличивается занимаемая память на сервере. А при нерациональной архитектуре базы - скорость роста размера твоего хранилища просто астрономическая.
Подключи Backup
Функция автоматического создания бекапов есть практически на всех популярных хостингах и стоит всего 1 доллар в месяц. Не пожадничай и подключи эту возможность. Если вдруг что-то пойдёт не так, то ты всегда сможешь откатиться к старой версии. Это лучше чем потерять всё.