Решения Проблемы Спам-Ботов, Добавленных В Группы Telegram

Привет. Я автор нескольких популярных ботов для администрирования телеграм-групп: @daysandbox , @watchdog_robot и другие.

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

Обычно также уточняют, что это арабские спам-боты.

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

Но это все последствия, а причина во многих случаях одна и та же и ее легко исправить.

Причина проста, но не очевидна.

В чем уникальность проблемы добавления спам-ботов в группу? Боты Telegram не видят сообщения от других ботов Telegram. Даже если у вас в группе уже установлены боты, которые удаляют ссылки, арабские символы и прочее, даже если они запрещают новым участникам группы писать сообщения до тех пор, пока новые участники не нажмут на кнопку или не пройдут какой-то тест, это не поможет предотвратить спам.

.

Спам появляется по следующему сценарию:

  • участник группы добавляет в группу спам-бота
  • антиспам-бот видит факт добавления бота
  • антиспам-бот, вызывает метод Telegram API, который ограничивает права спам-бота на запись сообщений в группу.

    Например, он делает это для всех новых пользователей или только для тех, чей логин содержит в конце слово «бот».

    Дело не в этом.

  • Между моментом входа спам-бота в группу и обработкой телеграм-сервером запроса на ограничение прав этого бота на запись в чат проходит некоторое время.

    На этом этапе спам-бот может отправить сообщение в чат.

  • Бот защиты от спама не видит это сообщение, поскольку боты не видят сообщения от других ботов.

    Вот как работает Телеграм.

Рассмотренный сценарий показывает, что не всегда можно справиться с последствиями добавления ботов.

Эффективнее бороться с причиной - возможностью участников группы добавлять ботов в группу.

Существует два типа групп Telegram: публичные и частные.

Тип группы определяет, что и как могут делать внутри группы администраторы, обычные пользователи и боты.

Обязательным условием публичной группы является наличие ссылки типа " https://t.me/XXX ", по которому можно войти в группу.

Для закрытой группы ссылка для входа не обязательна.

Давайте рассмотрим процесс создания группы с нуля.

Давайте создадим группу с настройками по умолчанию.

У нас будет закрытая группа без ссылки-приглашения.

Попробуем добавить любого бота в качестве простого участника группы.

Добавлен! Как решить проблему? Единственный способ предотвратить добавление ботов в частную группу — вообще запретить добавление новых участников вручную.

Это делается путем установки флажка «Управление группой -> Разрешения -> Добавление участников».

Это ограничит только обычных пользователей; администраторы групп по-прежнему смогут добавлять новых участников (и ботов) вручную.

Мы рассмотрели самый простой случай.

Теперь создадим ссылку-приглашение для входа в группу: «Управление группой -> Информация о группе -> Ссылка-приглашение -> Создать ссылку-приглашение».

Мы получим ссылку типа " https://t.me/joinchat/ .

».

У каждого администратора есть своя ссылка-приглашение, изначально ее знает только создавший ее администратор.

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

В любой момент в Тем временем администратор может создать новую ссылку-приглашение, но старая ссылка больше не будет работать.

Важное примечание: спам-боты не могут войти в группу по ссылке-приглашению.

Спам-бот (да и вообще любой бот) может попасть в чат только в том случае, если кто-то вручную добавит туда бота.

Самая частая причина появления спам-ботов в приватных чатах — это когда администраторы создают ссылки-приглашения, но не отключают (через «Управление группами» -> «Разрешения») возможность добавлять новых пользователей вручную.

Теперь посмотрим, что будет, если перевести группу из приватного режима в публичный с помощью «Управление группой -> Информация о группе -> Публичная группа».

Нам также придется придумать публичное обращение типа « https://t.me/XXX ", без этого сделать группу публичной не получится.

Пусть будет" https://t.me/habr_test ".

В чем разница между публичной группой и частной группой, у которой есть ссылка для приглашения? Публичную группу можно найти с помощью внутреннего поиска в Telegram, а также просмотреть любое сообщение группы через Интернет по адресу ".

https://t.me/habr_test/X ", где X — порядковый номер сообщения в группе.

Итак, наша группа стала общедоступной, изменились ее свойства видимости и многое другое.

Самое интересное, что сюда больше нельзя приглашать ботов.

Если в "Управление группой -> Разрешения" разрешено приглашать новых пользователей, то пользователи смогут приглашать новых пользователей, но только обычных людей, а не ботов.

При попытке добавить бота вы получите сообщение об ошибке «Не удалось добавить пользователя.

Повторите попытку позже».

Именно то, что вам нужно! Заключение.

Иммунитет от заражения группы ботами дает одно из двух действий:

  • запрет постоянным участникам добавлять ботов (Управление группой -> Разрешения)
  • перевод группы в публичный режим т.е.

    присвоение группе адреса типа " https://t.me/habr_test "

P.S. Название статьи было немного кликбейтным.

Конечно, очень много спама в Telegram генерируют не боты-бот-API, а боты, использующие обычные учетные записи пользователей, но описанная в статье проблема и ее решение действительно существуют. И они случаются каждый день, а я уже заколебался отвечать на одни и те же вопросы, поэтому и написал эту статью.

UPD: Я сделал бота, который автоматически удаляет сообщения, содержащие символы арабского алфавита, а также удаляет новых пользователей, имена которых содержат символы арабского алфавита.

Просто установите бота @noarab_bot в чат и дать ему права удалять сообщения и банить пользователей.

Документация бота: https://tgdev.io/bot/noarab_bot UPD2: Если по тем или иным причинам невозможно сделать группу общедоступной или запретить добавлять участников в закрытую группу, то можно воспользоваться ботом @watchdog_robot с фильтром «бот» — сторожевой таймер будет удалять ботов сразу после того, как кто-то добавил их в чат. Теги: #мессенджеры #Telegram #бот #Спам и антиспам #спам #telegram bot #антиспам

Вместе с данным постом часто просматривают: