Как ограничить доступ к боту telegram
Перейти к содержимому

Как ограничить доступ к боту telegram

  • автор:

Как блокировать доступ ботам и зачем это нужно

Любой рекламодатель, который уже столкнулся с мошенническими кликами по своим рекламным объявлениям, не будет рад еще одной атаке ботов. И конечно же, он предпочтет блокировать всех, кроме реальных пользователей. Но нужно ли это делать, а главное — когда?

Содержание скрыть

Что такое бот?

Бот (сокр. от «робот» (robot) — программа, созданная для многократного повторения циклической задачи. По сути, это скрипт для автоматизации веб-процесса.

Для ряда специалистов использование ботов связано с масштабированием кампаний по продвижению продукта или ресурса. И не всегда они делают это в положительном ключе.

В PPC-рекламе мошенники используют их для скликивания объявлений, в CPM — для генерации недействительных просмотров, в CPA — для фальшивых лидов.

Есть даже недобросовестные реферальные партнеры, которые так могут обманывать целые компании.

О природе ботов

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

Такой трафик может привести к:

  • Некорректной статистике по посещениям и источникам;
  • Неверной атрибуции;
  • Увеличению нагрузки на пропускную способность сайта и др.
  • Хорошие — работают в фоновом режиме, применяются для автоматизации невредоносного процесса.
  • Плохие — нарушают безопасность сайта или используются в качестве основной «силы» в рамках ботнета для проведения DDOS-атак на крупную компанию (в случаях, когда одна машина не сумеет справиться).

Вот что следует знать о ботах и ​​о том, как предотвратить сканирование сайта злоумышленниками.

Распространенные заблуждения о ботах

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

Яндекс — это бот. Если его заблокировать, то что тогда произойдет с вашим сайтом, насколько высок будет его индекс качества, как страницы будут попадать в выдачу?

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

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

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

Виды мошеннических операций с использованием ботов

Злоумышленники используют ботов для различных целей. Их создают, развивают и совершенствуют для обхода систем кибербезопасности. Цель — материальная выгода. Будь то DDoS-атака или скликивание.

Бот-трафик

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

Ботнет-атаки

Злоумышленники создают целые сети из зараженных вредоносом устройств (которых в дальнейшем называют «зомби») и используют их для организации атак против сайтов. Ботнеты сдают в аренду и продают. Крупные преступные кибергруппировки с помощью зомби-устройств могут наносить ущерб на миллионы долларов в день.

IoT

Боты также используются для поиска уязвимостей в устройствах интернета вещей (IoT) и распространения вредоносного ПО. От взломанного устройства далее по цепочке заражаются и другие, подключенные к сети, устройства.

CTV (SmartTV)

Видеореклама на SmartTV порождает разработку ботов мошенниками для фальсификации просмотров. Злоумышленники используют разные способы обмана рекламодателей и площадок: внедрение вредоносных приложений, зараженных ботнетами, подмена источника или аудитории с компрометацией CTV-серверов, просмотры видеорекламы ботами и даже просмотр рекламного ролика без фактического просмотра.

Фишинговые атаки

Это тип атаки, когда злоумышленник отправляет электронные письма с поддельного адреса с вредоносным вложением или ссылкой, замаскированной под легальный официальный контент, с целью кражи данных пользователя.

Спам

Спамеры рассылают миллионы электронных писем с единственной целью: получить доступ к чужому email, чтобы продать его в даркнете, или просто отправляют туда нежелательные сообщения с рекламой или даже вредоносным ПО во вложениях.

Зачем нужно блокировать ботов, если они сканируют сайт?

Не все боты полезны. Вредоносные скрипты могут применяться мошенниками для кражи персональных данных пользователей (через фишинг, например), атак на сайты для выведения их из строя (например, направленная DDoS-атака с использованием взломанных умных чайников, бойлеров и телевизоров), скликивания рекламных объявлений, размещенных на монетизирующем сайте нечестного вебмастера.

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

Зачем же это в принципе нужно делать? Давайте рассмотрим несколько основных причин:

Защита ценных данных

  1. Например, вы обнаружили, что какой-нибудь новенький плагин, установленный на сайте, привлекает вредоносных ботов, цель которых — кража персональных данных пользователей вашего ресурса.
  2. Или, к примеру, бот воспользовался уязвимостью системы безопасности, взломал ваш сайт и добавил спам-ссылки или даже целые страницы с ними.
  3. А может, он вообще генерирует фальшивые лиды через контактную форму.

Во всех этих случаях определенно стоит предпринять меры для защиты данных от компрометирования.

Нагрузка на пропускную способность сайта

Пропускная способность — это скорость передачи данных с вашего сервера на клиентскую сторону (браузер). От нее зависит каждое подключение.

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

Например, когда интернет-магазин был выведен из строя при помощи вредоносного «набега». Мало того, что вы выходите за рамки тарифного плана — в этом случае вам придется оплачивать дополнительную услугу, так еще и потенциальные покупатели, перешедшие по рекламе, не смогли попасть на нужную им страницу (в итоге, выбрали конкурента)

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

Ограничение вредоносного поведения

Если боты выбрали ваш сайт в качестве цели, то желательно предпринять соответствующие шаги для взятия ситуации под свой контроль.

Например, стоит убедиться, что робот не сможет получить доступ к контактным формам на сайте. Для этого нужно поставить систему защиты антибот. Она позволит заблокировать нежелательный вредоносный трафик, защитит от накруток поведенческих факторов и избавит от мошеннических действий.

PBN в руках мошенников и блокировка поисковых роботов

Есть и другие причины, по которым стоит блокировать сканирование и посещение сайта ботами. В случае серых (или черных) PBN (Private Blog Network).

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

Способы блокировки ботов на сайтах

Для этого мы предлагаем три способа блокировки бот-трафика.

По robots.txt

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

Ниже приведены директивы для robots.txt, которые помогут заблокировать поисковых роботов и ботов.

Закрыть доступ поисковому роботу

Если по какой-то причине вы хотите, чтобы робот YandexBot или Googlebot вообще не сканировал сайт, вам следует использовать следующие директивы:

User-agent: Googlebot
Disallow: /
User-agent: YandexBot
Disallow: /

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

Должна быть веская причина для блокировки поисковых ботов. Например, на тестовых сайтах, чтобы не было нежелательного клона и дублирующегося контента.

Запрет доступа всем ботам

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

User-agent: *
Disallow: /

Это директива для запрета доступа всем ботам. Она нужна для новых сайтов, индексирование которых стоит отложить.

Запрет сканирования определенных папок

Если по какой-то причине вы хотите запретить сканирование определенных папок (разделов), то это также можно сделать. Вот директива, которую можно использовать:

User-agent: *
Disallow: /имя-папки/

Причины, по которым кто-то может захотеть запретить доступ ботам к папкам, могут быть разными. Одна из них — нежелание индексации технических разделов сайта.

Распространенные ошибки при работе с robots.txt

Важно не допустить ошибок при работе с файлом robots.txt. К наиболее распространенным относятся:

  • Использование как disallow, так и noindex. Считается, что нельзя использовать одновременно Disallow в robots.txt и noindex на самой странице. И то, и другое будет блокировать робота поисковой системы. Именно поэтому и необходимо использовать что-то одно, а не всё вместе.
  • Для указания точного пути к папке необходимо указывать косую черту «/». Косая черта после Disallow означает: «с этой папки целиком и полностью, навсегда». Каждая страница на вашем сайте, которая стоит после черты, будет заблокирована навсегда, пока вы не удалите такую директиву.
  • Файл robots.txt не был протестирован. Очень важно всегда перепроверять директивы и указанные в файле пути к папкам и разделам сайта. Чтобы не рисковать и не запретить случайно доступ к важным данным или, наоборот, разрешить сканировать что-то лишнее, используйте инструменты вебмастера для проверки файла.
  • Указано некорректное имя в User-agent или вовсе не указано. Внимательно проверяйте и старайтесь найти конкретное имя бота. В противном случае все усилия будут напрасны.

По .htaccess

Подходит для мошеннических и вредоносных ботов, которых нужно блокировать нещадно. Сделать это можно при помощи специальных серверных расширений, например, mod_rewrite с сервера Apache:

RewriteCond % ^.*(Bot01|Bot02|Bot03).*$ [NC]

Условия в данном случае прописываются через вертикальную черту «|», через которую указаны (без пробела) наименования ботов. К примеру:

humanlinks|HybridBot|MSIECrawler|suggybot

Обратите внимание: будьте осторожны. Некорректная настройка может вывести сервер из строя.

С помощью сервисов защиты от ботов

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

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

Антибот на сайт

Блокировка нежелательных ботов с помощью систем защиты полностью себя оправдывает. С ней можно быть спокойным, зная, что сайт защищен от автоматизированных атак.

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

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

Контроль за процессом сделает вашу работу быстрее и эффективнее. Если вы не можете самостоятельно следить за источниками трафика, воспользуйтесь услугами сервиса Botfaqtor. Поставьте на сайт антибот и блокируйте нежелательные визиты. Берегите свою репутацию.

Попробуйте бесплатно 7-дневную версию сервиса Botfaqtor. Отчеты о блокировках формируются регулярно. Вам не потребуется сверять статистику вручную — автоматизируйте этот процесс!

Возможно, вам будет интересно:

Как запустить рекламу в Яндекс Директ: инструкция

Боты как инструмент автоматизации: примеры, вред и польза

Об авторе

Алёна

Пишу о ботах и кибербезопасности

Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

Как ограничить доступ к боту телеграм?

Здравствуйте.
Есть некий бот, подскажите пожалуйста, каким образом разрешить ему доступ только определенным пользователям?
Интересует именно способ через белый список чат ид юзеров.
Если пишет человек, и его чат ид есть в списке, он может работать, если нет, тогда ничего не происходит, или будет ответ что у вас нет доступа к боту.
Спасибо.

  • Вопрос задан более трёх лет назад
  • 36999 просмотров

Комментировать
Решения вопроса 1

Использовать в начале хэндлер с проверкой на наличе id в переменной(или в чем то другом)

Пример для python + telebot

@bot.message_handler(func=lambda message: message.chat.id not in users) def some(message): bot.send_message(message.chat.id, "Sorry")

Ответ написан более трёх лет назад
enabl3 @enabl3 Автор вопроса

Скорее всего что то не так сделал.
Выдает ошибку
@bot.message_handler(func=lambda message: message.chat.id not in users)
NameError: global name ‘users’ is not defined

enabl3, users — переменная(список), в примере ее нет.
задается:
users = [‘id1’, ‘id2’ и т.д]
enabl3 @enabl3 Автор вопроса

sar0ka8, написал свой чатИД, перезапустил бота, а он мне отвечает Sorry, как и всем остальным кто ему пишет. Что еще может быть не так?

Нужно посмотреть в каком типе бот получает id int или str(на сколько я помню int), и проверить совпадает ли тип с значениями списка.
Возможно, что вы добавили не id, а username.

Это из того, что я могу придумать не видя код

enabl3 @enabl3 Автор вопроса

sar0ka8, в коде бота написал так:
users = [‘271868950’]
@bot.message_handler(func=lambda message: message.chat.id not in users)
def some(message):
bot.send_message(message.chat.id, «Sorry»)

Это тот ид что отдает мне curl
(ид изменил)

Проверил, id является числом(int), сейчас элементы users это строки. Правильный вариант:
users = [271868950]

Ограничение доступа к боту в Телеграм

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

Инструкция по интеграции бота в телеграм есть в статье: Как добавить бота в Telegram?

Простой способ — открытие доступа через сценарий

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

Руководство

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

2. Создайте блок Условный выбор с двумя ветками — первая ветка позволит продолжить диалог, а вторая завершит его сообщением «вход запрещен».

3. В стрелке, идущей в продолжение диалога, укажите следующие параметры:

где X — ваш идентификатор. Идентификатор можно получить если интегрировать данный сценарий в телеграм бота, и запустить его. Первым сообщением бот напишет вам идентификатор.
Либо используйте этого телеграм бота с помощью команды /getid.

Во второй стрелке установите тип выходных данных По умолчанию

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

Пример работы

Продвинутый способ — открытие доступа через команду бота в Telegram

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

Фрагмент сценария

Параметры блоков и стрелок

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

2. Установите блок Результат и выполните действия:

  • Присвойте переменной uid значение: ,
  • Выберите тип действия Без действия.

Это необходимо для дальнейшего использования идентификатора в операциях с фактами бота.

3. Создайте блок арифметики и выполните действия:

  • Установите тип Произвольный тип,
  • в поле BPL-выражение вставьте следующий код:

$reg = fact.load("userId", $uid, @botId)
  • Нажмите кнопку Преобразовать BPL в AST

С помощью данной операции бот попытается загрузить факт, содержащий идентификатор пользователя, из своей базы фактов.
В случае, если идентификатор пользователя, ведущего диалог с ботом будет найден в базе фактов — в переменную reg запишется этот идентификатор.
Если в базе такого идентификатора нет — переменная reg будет пустой.

4. Создайте блок условия с двумя ветками — первая ветка идет на блок Информация, вторая — на блок Вопрос.

В стрелке, идущей на блок Информация, установите тип По умолчанию.

В стрелке, идущей на блок вопроса, выберите:

С помощью данного условия выполняется проверка наличия содержимого переменной reg.
Если она не пустая, значит идентификатор пользователя был найден в базе фактов, и доступ к дальнейшему диалогу с ботом открыт.

5. Из блока Вопрос создайте еще две ветки к двум новым блокам Вопрос — данные ветки нужны для команд открытия и закрытия доступа для определенного пользователя.

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

Во второй стрелке все аналогично первой, но в поле ключевых слов необходимо ввести команду /deluser.

6. Ветки с командами идентичны, и состоят из блока Вопрос, блока Арифметическая операция и блока Информация.
В блоке Вопрос запрашивается идентификатор пользователя, которому необходимо открыть или закрыть доступ.

В стрелке, идущей после блока Вопрос, сохраните введенный пользователем идентификатор, поставив галочку Сохранить ответ, и введя поле Название переменной переменную user.

В блоке арифметики необходимо установить тип Произвольный тип, и в поле BPL-выражение внести следующие выражения:

В ветке для открытия доступа:

fact.save("userId", $user, $user, @botId)

Данная операция сохраняет идентификатор в базу фактов бота.

В ветке для закрытия доступа:

Авторизация в Telegram

Иногда нужно ограничить доступ к боту для определенного круга лиц.

Есть два способа реализовать это:

  • Создать логин и пароль, которые будут вводить пользователи
  • Ограничить доступ для определенного списка пользователей. Именно эту опцию мы рассмотрим в статье

Чтобы собрать список пользователей, для которых доступен бот, нужно собрать их username.

Username пользователя Telegram – это уникальный идентификатор аккаунта. Посмотреть его можно в настройках Telegram (Настройки –> Изменить профиль –> Имя пользователя). Либо вы можете попросить пользователей написать чат-боту. Так вы автоматически соберете их юзернеймы, отправив их себе в Telegram сообщением либо в Google Таблицу с помощью сервиса IFTTT.

Обратите внимание: Username – это не имя пользователя

Внимание! Если у вас в сценарии есть глобальный блок Интенты, то бот будет предоставлять пользователю информацию согласно реакциям из этого глобального блока. Решение – каждый раз после глобального блока проверять юзернейм пользователя.

Ограничить доступ средствами сценария

Вы можете настроить бот так, чтобы доступ к нему имели только определенные пользователи. Например те, username которых прописан в сценарии. Для этого в блоке Условия пропишите: $rawRequest.message.from.username === «username»

вместо username укажите юзернейм нужного пользователя (идентификатор аккаунта Telegram)

Если их username входит в список, то бот будет приветствовать их, а если нет, то сообщит, что доступ запрещен:

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

Либо можете отправлять данные в Google Таблицу с помощью сервиса IFTTT.

Используем Google Таблицы

Если у вас много пользователей Telegram, которым нужно предоставить доступ к боту, а остальным пользователям доступ запретить, вы можете хранить данные этих пользователей в Google Таблице.

Создайте Google Таблицу со списком юзернеймов

Первым делом создайте Google Таблицу со списком юзернеймов пользователей, которые будут иметь доступ к боту:

В таблице нужно перечислять именно юзернеймы пользователей (идентификаторы их аккаунтов), а не имена или телефоны

Опубликуйте таблицу

Чтобы опубликовать Google Таблицу, откройте меню Файл → Поделиться → Опубликовать в интернете (File → Share → Publish to web). Откроется окно, в котором нужно просто нажать на кнопку Опубликовать (Publish).

Создайте новый блок Условия

Создайте блок Условия со следующим содержимым:

Свяжите блок Условия с HTTP-запросом

Свяжите блок Условия с HTTP-запросом:

Содержимое HTTP-запроса

Укажите URL вида:

  • Параметр указан внизу таблицы на вкладке листа таблицы.
  • Параметр вы можете получить из URL таблицы:

На вкладке RESPONSE добавьте переменную $users со значением _.findWhere($httpResponse, ) .

telegram authorize 1

Создайте новую связь с блоком Условия

Создайте связь с блоком Условия, в котором написано просто: $users .

Если в переменной $users что-то будет, то бот будет приветствовать пользователя, если нет – «Доступ запрещен». Вот как будет выглядеть цепочка экранов:

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *