Решением стало написание свое бота, который задавал вопросы по типу:
Пользователю нужно ответить правильно, другие сообщения будут удаляться
Как добавить бота в чат?
- Добавляете бота в чат:
- После этого добавляете бота как админа в настройках чата:
- Даете боту права доступа на удаление сообщений и бан пользователей:
Код
Для работы с сообщениями в телеграм я решил использовать библиотеку tucnak/telebot с которой я уже работал раньше и которая кажется мне весьма удобной
Для начала надо настроить и запустить нового бота:
Как защитить Телеграм-канал от взлома/Безопасность Telegram-канала
В импорты нужно добавить:
import ( tb «gopkg.in/tucnak/telebot.v2» )
И таким образом запускается наш бот
// initialize bot b, err := tb.NewBot(tb.Settings< Token: «YOUR_TOKEN», Poller: , >) if err != nil < fmt.Printf(«error while initializing bot, %v», err) >
Для того чтобы отследить когда новый пользователь зайдет в чат, нужно добавить отлавливание этих событий:
b.Handle(tb.OnUserJoined, UserJoined(l, b, memoryStorage))
А вот так выглядит сама функция UserJoined :
func UserJoined(l *zap.SugaredLogger, b *tb.Bot, s data.Storage) func(m *tb.Message) < return func(m *tb.Message) < r := rand.New(rand.NewSource(time.Now().UnixNano())) // generating two random small number firstNumber := r.Intn(4) + 1 secondNumber := r.Intn(4) + 1 fistNumberInWords := ntw.IntegerToRuRu(firstNumber) secondNumberInWords := ntw.IntegerToRuRu(secondNumber) username := getUsername(m.Sender) welcomeMessageText := getWelcomeMessageText(username, m.Chat.Title, fistNumberInWords, secondNumberInWords) welcomeMessage, err := b.Send(m.Chat, welcomeMessageText) if err != nil < l.Error(«error while sending welcome message», err) return > s.Add(m.Chat, m.Sender, data.InfoWelcomeMessage: welcomeMessage, RightAnswer: firstNumber * secondNumber>) // Goroutine to delete message after 2 minutes // and block user if he or she still in the list go checkAndBanUser(l, b, welcomeMessage, s, m, username) > >
Она генерирут два случайных числа и конвертирует их в текст. Правильный ответ записывается в память. Затем в горутине ожидается 2 минуты от отправки сообщения, если пользователь так и не решил правильно ответ, то он блокируется и удаляется из чата
Вот так выглядит код для проверки ответа пользователя:
func Text(l *zap.SugaredLogger, b *tb.Bot, s data.Storage) func(m *tb.Message) < return func(m *tb.Message) < info, ok := s.Exist(m.Chat, m.Sender) if !ok < return > if m.Text != strconv.Itoa(info.RightAnswer) < err := b.Delete(m) if err != nil < l.Errorf(«error while deleting (spam) user message: %v», err) > return > // in case of correct answer: s.Remove(m.Chat, m.Sender) // Correct! Tell us about yourself approveMessage, err := b.Send(m.Chat, «Верно! Расскажите нам о себе «) if err != nil < l.Errorf(«error while sending: %v», err) > go deleteWelcomeMessages(l, b, m, approveMessage, info.WelcomeMessage) > >
Итог работы бота
По итогу бот очень успешно банит других ботов, не давая им написать сообщение с рекламой. Никто не переводит сообщения на английский язык и поэтому не знает что именно нужно делать. Таким образом пока получается блокировать всех ботов, хотя раньше с другими анти-спам ботами 50% просто решали капчу и писали спам
Исходный код
Исходный код, который деплоится затем на сервер вы можете найти тут:
Вы можете предложить свои изменения и улучшения, код открытый
После мержа код автоматически деплоится в продакшен (если билд пройдет успешно)
Источник: blogpavel.com
Как легально «отжимают» юзернеймы в Telegram и как защититься от этого
Сообщество фрилансеров и предпринимателей Помогаем монетизировать знания Статьи, кейсы как заработать в интернете, соцсетях, мессенджерах More posts by Кибер Мастера.
Кибер Мастера
25 янв. 2023 • 3 min read
В августе 2022 года тысячи юзернеймов были «отжаты» у неактивных каналов и «преданы в жертву» будущей аукционной платформе Fragment. Еще свежи воспоминания об этом? Если да, то сегодня я расскажу как в Telegram при помощи декларируемых сами мессенджером способов уже долгое время угоняют юзернеймы, но самое главное, расскажу какая от этого есть защита.
Обязан отметить, что эта схема не для заработка и шантажа, а для защиты владельцами каналов своих раскрученных ссылок, а также для команды Telegram, чтобы они прикрыли эту лазейку. Просьба поделиться статьей в своих сообществах, чтобы как можно больше владельцев каналов узнали про схему и не лишились своих активов.
Как ищут «жертву» в Telegram
Для начала определяются какая в принципе юзерка нужна.
Понадобится сервис TGStat (или Telemetr). И там, и там есть возможность смотреть историю канала, что необходимо для оценки важности юзернейма для его владельца.
Находят крупный канал, например вот этот и проверяют менялась ли у него ссылка, как давно и как часто.
На примере видно, что ссылка не менялась ни разу. Это отличный магнит для угонщика, так как ссылка будет особенно ценной для владельца и он будет готов на многое, если потеряет ее. Кроме того, если ссылка не менялась долгое время, это значит, что все ранее сделанные упоминания этого канала с такой ссылкой и во всех местах будут работать на злоумышленника, делать ему рекламу.
Как проверяют насколько «жертва» уязвима
Чтобы вручную не делать то, что можно вручную не делать, используют сервисы, проверяющие имя на занятость в социальных сетях и мессенджерах.
Например, есть такой instantusername.com — бесплатный, быстрый, удобный и наглядный. Сервис чекает юзерки во всех необходимых местах, в том числе в Telegram.
Угонщика интересуют только Instagram, Facebook и Twitter (и Telegram, но он, понятно, занят).
Есть еще несколько сервисов проверки, они со своими минусами:
namecheckr.com — не ищет по Instagram;
namechk.com — во всех необходимых ищет, но не очень наглядно;
checkusernames.com — не ищет по Facebook, Instagram, Telegram;
knowem.com — неудобно, много лишних соцсетей и сайтов.
По итогам проверок находится такой канал, чей юзернейм свободен, как минимум, в двух сервисах из следующих: Facebook, Twitter, Instagram.
Кстати, недавно Илон Маск заявлял, что много миллионов неактивных аккаунтов в Twitter будут удалены, а это значит, что некоторые юзернеймы, занятые долгое время, освободятся. Уверен, что кто-то обязательно подсуетится и очень легко «закроет» вопрос с занятыми в твиттере именами.
Далее, проверяется коллекционность юзернейма, для чего используется сервис Fragment.
Рассматриваемый как пример «tochkaup» еще не является коллекционным, поэтому отлично подходит нуждающемуся в нем угонщику.
Как подготавливается база для атаки на «жертву»
Для злоумышленника это самый долгий, сложный и ответственный пункт. В тех социальных сетях, где юзернейм «жертвы» свободен, создаются аккаунты и на них устанавливаются имена как у «жертвы», в данном случае TochkaUP.
Для успеха угонщику важно, чтобы аккаунты были максимально похожими на активные. То есть, для него надежнее будет даже не новые создавать, а купить уже готовые аккаунты, с историей, с постами. В идеале делают так, что тематика фейка становится похожей на тематику телеграм-канала «жертвы». Если же создаются новые аккаунты, то некоторое время они наполняются контентом, раскручиваются через соответствующие smm-панели, в общем, создается видимость активности для последующих проверок со стороны Telegram.
Магазинов, торгующих аккаунтами в социальных сетях, на просторах интернета предостаточно, поэтому кому надо, тот найдет и с этим проблем у угонщиков меньше всего.
Финал — попытка забрать чужой юзернейм
Злоумышленнику нужно доказать модераторам бота, что аккаунты с аналогичными юзернеймами в Twitter и Instagram принадлежат ему.
После проверки предложат указать на какой аккаунт или канал передать запрошенный юзернейм.
Нюансов, как видите, хоть лопатой откидывай, но если все было тщательно проработано и юзернейм передали мошеннику, то, с недавних пор, он может незамедлительно конвертировать его в коллекционный, через Fragment. Тогда прежнему, настоящему владельцу уже невозможно вернуть ссылку на свой канал.
Как защитить свой юзернейм от злоумышленников
Первый способ — проверяете в каких из трех социальных сетях еще не занято аналогичное имя и немедленно, как минимум в двух, занимаете его. Так вы свяжете руки будущим сквоттерам но Павел Дуров круче любого сквоттера, а своему юзернейму гарантируете неприкосновенность.
Второй способ — с помощью платформы Fragment конвертировать юзернейм в коллекционный и пляски с другими соцсетями не потребуются.
Если юзернейм у вас уже угнали, то пишите в техподдержку мессенджера, давайте ссылку на данную статью, пусть видят, что это слабое место и страдают обычные пользователи. Удачи!
Кибер Мастера там, где вам удобно: Telegram ▫️ Дзен ▫️ Я.Кью ▫️ VK ▫️ VC ▫️ YouTube ▫️ Партнеркин ▫️ Pikabu ▫️ TenChat ▫️ ТамТам
Subscribe to Кибер Мастера
Get the latest posts delivered right to your inbox
Источник: cybermasters.site
Как защититься от спама в комментариях к телеграм-каналу
Комменты в телеге — отличный инструмент для дискуссий: не надо вводить почту и заполнять капчу; написать коммент так же легко как написать другу в другу; при желании легко перейти в личку. К сожалению, этой простотой пользуются спамеры — регистрируют аккаунты на левые симки и шлют GPT-сообщения о распродажах на вайлдберис, шокирующем выступлении Путина и даже о Ванге:
Сам телеграм пока не борется с таким спамом — они нормально защищают чаты, но полностью игнорируют комменты каналов. И пока Дуров не завёз нам нормальный антиспам, я сделал это сам — запилил бота, который удаляет комменты спамеров.
Борьба со спамерами — это гонка вооружений: админы придумывают новый способ отличить нормальных людей от спамеров, спамеры придумывают как этот способ обойти, и так повторяется до бесконечности. При этом админы должны не слишком досаждать проверками обычным пользователям — если заставить людей заполнять капчу или подтверждать почту, то они просто перестанут писать.
Я очень не хочу вступать в эту гонку, поэтому предлагаю просто удалять из комментариев все виды ссылок — на сайты, чаты, каналы и даже на людей. Сообщение спамера без ссылки не имеет никакого смысла — по нему гарантированно никто не перейдёт. Конечно, живые люди тоже хотят обмениваться ссылками — им, к сожалению, придётся обойтись без этого, либо написать хотя бы несколько нормальных сообщений в чат, чтобы бот увидел, что они живые люди.
Бот — бесплатный: не нужно подписываться ни на какие каналы, оплачивать подписку или читать чей-то спам. К сожалению, я не смогу даже написать вам, если изменю алгоритмы бота, но если вам зачем-то хочется следить за новостями — смотрите гитхаб.
Меня зовут Федя Борщёв. Пишу для программистов в телеграме — 2 поста в неделю об управлении сложными проектами, хорошем коде и профессиональном развитии. А ещё я руковожу Школой Сильных Программистов ,
где мы делаем синьёров, архитекторов и тимлидов. Приходите учиться!
Почитать ещё
- Письмо самому себе
- Как сделать Instant View для любого сайта
- Фавиконка и логотип телеграма
- Еще один способ подписаться на блог
Источник: borshev.com