Спасибо всем за рекомендации по хостингу! Почему-то раньше не обращал внимания на дедики у OVH, возможно из-за осадочка, который остался после сгоревших там в 2021 году рабочих серверов, бекапы для которых размещались в соседнем ДЦ, который залили водой при тушении пожара 😅
Но такой вариант позволит срезать косты раза в два, и при этом добавить оперативки, которой постоянно не хватает. Дешевле может получиться вариант с хостингом своего железа в ДЦ, но это уже не в один клик решение, и вспоминается, раньше это стоило конских денег.
Пока что самый дешёвый вариант получается если арендовать дедик в Hetzner, но мне он не подходит ввиду их крайне агрессивной реакции на абузы. В отличии от (всех?) остальных, они при получении абузы сначала отрубают серверу сеть, а потом уже присылают письмо с просьбой объясниться за свою сетевую активность. После нескольких таких приколов окончательно съехал от них.
А так как у бота нет привычки удалять подряд все ссылки от пользователей, потому есть необходимость по ним переходить, для проверки содержимого. И иногда прилетают абузы в духе
Для примера прикрепил несколько скриншотов сайтов мошенников, регистрирующих каждый день по несколько новых доменов, практически не использующих повторно те же аккаунты для рассылок с другими доменами, и предпочитающих писать короткие тексты в духе
#мошенники
Но такой вариант позволит срезать косты раза в два, и при этом добавить оперативки, которой постоянно не хватает. Дешевле может получиться вариант с хостингом своего железа в ДЦ, но это уже не в один клик решение, и вспоминается, раньше это стоило конских денег.
Пока что самый дешёвый вариант получается если арендовать дедик в Hetzner, но мне он не подходит ввиду их крайне агрессивной реакции на абузы. В отличии от (всех?) остальных, они при получении абузы сначала отрубают серверу сеть, а потом уже присылают письмо с просьбой объясниться за свою сетевую активность. После нескольких таких приколов окончательно съехал от них.
А так как у бота нет привычки удалять подряд все ссылки от пользователей, потому есть необходимость по ним переходить, для проверки содержимого. И иногда прилетают абузы в духе
наша система мониторинга обнаружила что вы посещали домен ботнета, значит ваш сервер заражён. И нормальный хостер даёт неделю/месяц времени на то, чтобы объясниться, несколько раз напомнит о том, что письмо было не отвечено, но не рубит сразу сервер просто из-за того что какой-то скрипт отправил им емейл.Для примера прикрепил несколько скриншотов сайтов мошенников, регистрирующих каждый день по несколько новых доменов, практически не использующих повторно те же аккаунты для рассылок с другими доменами, и предпочитающих писать короткие тексты в духе
забери срочна чушпан#мошенники
👍8😱2🤔1👌1
За первую неделю года бота добавили в 200 новых чатов 📈
Поступило много фидбэка... И я неожиданно для себя открыл новую проблему, о которой раньше не догадывался. Оказывается, достаточно многие администраторы сообществ боятся не просто добавлять неизвестного бота к себе, но и даже просто пользоваться им, считая что это может привести к краже аккаунта и их групп. И тут как раз под руку попался подобный кейс 🤓
Начать стоит с того, что если переживаете за свой аккаунт, то включите
Узнать номер телефона аккаунта обычно не сложно (через того же глаза б*га), и примерно настолько же несложно получить SMS на этот номер (подробнее можно почитать по словам
Пример такого развода на скриншоте выше. Первым делом бот просит у пользователя указать свой номер телефона (нажав на кнопку
#мошенники
Поступило много фидбэка... И я неожиданно для себя открыл новую проблему, о которой раньше не догадывался. Оказывается, достаточно многие администраторы сообществ боятся не просто добавлять неизвестного бота к себе, но и даже просто пользоваться им, считая что это может привести к краже аккаунта и их групп. И тут как раз под руку попался подобный кейс 🤓
Начать стоит с того, что если переживаете за свой аккаунт, то включите
двухфакторную аутентификацию (2fa), блэт! В телеграмм это просто дополнительный пароль, который потребуется вводить только при входе с нового устройства. Если данный пароль не установлен, то для доступа к аккаунту достаточно принять SMS сообщение на номер телефона, к которому привязан аккаунт. Узнать номер телефона аккаунта обычно не сложно (через того же глаза б*га), и примерно настолько же несложно получить SMS на этот номер (подробнее можно почитать по словам
атаки ss7, но вкратце - это реально, и есть люди, которые это делают), просто это стоит денег, и нерентабельно для целей угона канала на тысячу подписчиков. Поэтому школоло-мошенники для своих хулиганских выходок используют методы социальной инженерии.Пример такого развода на скриншоте выше. Первым делом бот просит у пользователя указать свой номер телефона (нажав на кнопку
Авторизоваться), а затем пытается с этим номером телефона зайти в аккаунт пользователя, и соответственно телеграмм отправляет вам код для подтверждения. Но бот говорит, что это он отправил код и просит его ввести. После ввода данного кода, если на вашем аккаунте не включена 2fa, злоумышленник сразу получает доступ к вашему аккаунту и далее может передать управление вашими группами себе, с целью потом требовать за них выкупа (после выплаты которого он конечно же группы не вернёт), или просто рассылать спам от вашего имени, пока вы не отключите его сессию или телеграмм не заблокирует ваш аккаунт за спам.#мошенники
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤1🤔1👌1
Аналогичным образом происходит угон аккаунта
В случае с @lolsbotcatcherbot не требуется подтверждения номера телефона для его использования, а минимальный набор прав при добавлении в чат состоит из прав на
по ссылке. Вам присылают ссылку на сайт, с просьбой проголосовать за их *****. Сайт просит ввести номер телефона, затем код, и если у вас включена 2fa, то также спрашивает и пароль! Результат будет аналогичный, как в случае с ботом. И если вы сами вводите все данные, то тут уже и двухфакторная аутентификация не поможет.В случае с @lolsbotcatcherbot не требуется подтверждения номера телефона для его использования, а минимальный набор прав при добавлении в чат состоит из прав на
Удаление сообщений и Бан пользователей. При этом нужно отметить, что бот не может удалить сообщения, которым больше двух суток, и он так же не видит сообщения, которые были в чате до его добавления, и не может их удалить. Он вообще достаточно сильно ограничен в правах, поэтому в паре с ним в чат вступает юзер-бот, которому никто не даёт дополнительных прав (а было бы неплохо), но даже в таком случае он позволяет расширить функционал бота 🤖👍11🤔1👌1💯1
Как же быстро летит время. Помнится каких-то 14 лет тому назад делал
Кроме отсутствия подходящего метода API, в TG также поменялась логика распределения идентификаторов пользователей. Если ВКонтакте это последовательный счётчик, по которому можно было однозначно сказать, что чем он больше - тем свежее аккаунт. То в TG идентификаторы пользователей распределяются блочно: для конкретного датацентра отделяется блок идентификаторов размером примерно 100 миллионов штук, и для новых аккаунтов выбирается случайный ID из этого блока, и после заполнения блока на пару процентов он закрывается и выделяется новый блок. Соответственно то, что один ID больше другого - не говорит о том, что он был зарегистрирован позже. Рядом стоящие ID могут иметь разницу даты регистрации в месяцы.
В @lolsbotcatcherbot для определения даты регистрации аккаунта используются несколько источников данных: дата первого сообщения от пользователя (которое видел бот), дата загрузки фотографии профиля, дата входа в чат, и конечно же сам user_id. Учитывая что в телеге больше миллиона чатов, большая часть из которых не доступны публично, то достоверно определить дату первого сообщения пользователя не так просто. Да и из числа публично доступных я пока обработал сообщения лишь из 83 тысяч чатов. Поэтому если для вашего профиля дата первого сообщения определилась некорректно, то можно отправить боту ссылку на более старое своё сообщение, и он поправит дату.
MusicSig для ВК с опцией определения даты регистрации аккаунта, а сейчас работаю над аналогичной опцией, но уже для TG. И если в случае с ВК для этих целей была возможность использовать API (пусть и отдельно стоящее, но официальное), и узнать настоящую дату регистрации профиля, то в TG такого API нет. И поэтому ответ пяти разных ботов для определения даты регистрации аккаунта будет отличаться, местами на года.Кроме отсутствия подходящего метода API, в TG также поменялась логика распределения идентификаторов пользователей. Если ВКонтакте это последовательный счётчик, по которому можно было однозначно сказать, что чем он больше - тем свежее аккаунт. То в TG идентификаторы пользователей распределяются блочно: для конкретного датацентра отделяется блок идентификаторов размером примерно 100 миллионов штук, и для новых аккаунтов выбирается случайный ID из этого блока, и после заполнения блока на пару процентов он закрывается и выделяется новый блок. Соответственно то, что один ID больше другого - не говорит о том, что он был зарегистрирован позже. Рядом стоящие ID могут иметь разницу даты регистрации в месяцы.
В @lolsbotcatcherbot для определения даты регистрации аккаунта используются несколько источников данных: дата первого сообщения от пользователя (которое видел бот), дата загрузки фотографии профиля, дата входа в чат, и конечно же сам user_id. Учитывая что в телеге больше миллиона чатов, большая часть из которых не доступны публично, то достоверно определить дату первого сообщения пользователя не так просто. Да и из числа публично доступных я пока обработал сообщения лишь из 83 тысяч чатов. Поэтому если для вашего профиля дата первого сообщения определилась некорректно, то можно отправить боту ссылку на более старое своё сообщение, и он поправит дату.
👍17❤3🤔2👌1
Недавно в выдаче бота рядом с именем пользователя появилась ссылка
Когда у аккаунта есть @username - то всё просто, ссылку на него можно сформировать в вариантах: https://t.me/username или https://username.t.me/, ну или просто @username и она будет работать во всех клиентах и у всех пользователей.
Но проблемы начинаются когда у пользователя не установлен username и есть только имя и
Например, для открытия профиля с user_id
1) tg://user?id=5367866773 - такую ссылку подставляет бот к имени пользователя, и оно будет активно, если бот где-то видел данного пользователя. Но когда такую ссылку пишет человек, то ни в одном клиенте она просто не работает, хотя и активна
2) tg://openmessage?user_id=5367866773 - такая ссылка работает исключительно у пользователей приложения под Android (и её сейчас бот подставляет к слову
3) https://t.me/@id5367866773 - а такая ссылка будет работать только у пользователей официального клиента под iOS. в Android клиенте просто скажет что такой Username не существует.
По-хорошему, стоит отображать все три ссылки, но пока не придумал как сделать это так, чтобы понятно было 😅
UPD: по просьбе постоянного пользователя добавил обе ссылки. Из грустного - у кого не получается разобраться с ботом и принципом его работы, просто уходят и не пытаются задавать вопросов 😒
Профиль, которая хоть и всегда активна (в отличии от имени), но зачастую ссылка не нажимается. Пару слов хотел рассказать про неё 🤓Когда у аккаунта есть @username - то всё просто, ссылку на него можно сформировать в вариантах: https://t.me/username или https://username.t.me/, ну или просто @username и она будет работать во всех клиентах и у всех пользователей.
Но проблемы начинаются когда у пользователя не установлен username и есть только имя и
user_id. Его можно попробовать найти через поиск, но в большинстве случаев этот вариант не работает. По user_id телеграмм пользователя просто так не покажет. Только лишь в случае, если вы где-либо его уже видели, и ваш клиент сохранил о нём информацию. Но даже в таком случае не всё однозначно 🤪Например, для открытия профиля с user_id
5367866773 есть варианты: 1) tg://user?id=5367866773 - такую ссылку подставляет бот к имени пользователя, и оно будет активно, если бот где-то видел данного пользователя. Но когда такую ссылку пишет человек, то ни в одном клиенте она просто не работает, хотя и активна
2) tg://openmessage?user_id=5367866773 - такая ссылка работает исключительно у пользователей приложения под Android (и её сейчас бот подставляет к слову
Профиль рядом с именем)3) https://t.me/@id5367866773 - а такая ссылка будет работать только у пользователей официального клиента под iOS. в Android клиенте просто скажет что такой Username не существует.
По-хорошему, стоит отображать все три ссылки, но пока не придумал как сделать это так, чтобы понятно было 😅
UPD: по просьбе постоянного пользователя добавил обе ссылки. Из грустного - у кого не получается разобраться с ботом и принципом его работы, просто уходят и не пытаются задавать вопросов 😒
❤16👍10🥴2👌1
Небольшая заметка про user_id. В официальном десктопном клиенте telegram под винду и линукс есть возможность включить отображение идентификатора пользователя (чата, канала, бота) в профиле. Для этого нужно зайти в настройки:
или
И включить Show Peer IDs in Profile.
В официальном мобильном приложении такой опции нет, но видел на скриншотах кастомных клиентов. Если кто знает их названия, подскажите в комментариях пожалуйста.
С любого клиента можно использовать данный способ: @testattach_guide
Settings -> Advanced -> Experimental settings
или
Настройки -> Продвинутые настройки -> Экспериментальные настройки
И включить Show Peer IDs in Profile.
В официальном мобильном приложении такой опции нет, но видел на скриншотах кастомных клиентов. Если кто знает их названия, подскажите в комментариях пожалуйста.
С любого клиента можно использовать данный способ: @testattach_guide
👍16❤5👌2🤔1
Тестирую в проде новые метрики для профилей. Пока что цифры в поле
По близкой к нулевой уникальности сообщений и большому их количеству можно понять, что пользователь рассылает спам. С чатами примерно также.
Заметил что появились пользователи, отправляющие за минуту по тысяче идентификаторов пользователей на проверку, поэтому на всякий случай добавил ограничение: если больше 10 проверок запросить у бота за 10 секунд, то дальше он просто игнорирует все сообщения 10 минут.
stats могут хаотично меняться, и местами не совпадать с реальностью 🤪По близкой к нулевой уникальности сообщений и большому их количеству можно понять, что пользователь рассылает спам. С чатами примерно также.
Заметил что появились пользователи, отправляющие за минуту по тысяче идентификаторов пользователей на проверку, поэтому на всякий случай добавил ограничение: если больше 10 проверок запросить у бота за 10 секунд, то дальше он просто игнорирует все сообщения 10 минут.
👍23🎉2👌2🤔1
Казалось бы, чего такого? У большинства пользователей и так по-умолчанию данная настройка разрешает всем приглашать вас в чаты. Но беда в том, что один из вариантов блокировки неугодного аккаунта предполагает что злоумышленник дождавшись когда вы пойдёте спать, приглашает вас в свой канал, передаёт вам права управления каналом, размещает на нём кучку материалов из категории
детская порнография и отправляет пачку жалоб на канал Через 5-10 минут канал блокируется, а вместе с ним блокируется аккаунт текущего владельца (не того, кто размещал ЦП, и не того, кто владел каналом десять минут тому назад). И ввиду тяжести совершённого преступления данная блокировка является перманентной и обжалованию не подлежит 🗿
Сюда стоит добавить то, что по статистике бота примерно 98% заблокированных спамеров имели премиум подписку.
UPD: всё не так плохо, настройку по прежнему можно отключить, просто из-за бага в клиенте нужно знать куда тыкать (подробности в комментариях)
UPD2: баг в виндовом клиенте уже исправлен
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯9❤2🤔1👌1
Теперь при установке бота в чат язык его сообщений в чате выбирается в зависимости от предпочтений администратора, его добавившего (выбор в боте или клиенте tg).
Позже язык может автоматически поменяться в зависимости от сообщений в чате. Если аудитория предпочитает писать на русском языке, то бот также будет писать. Иначе выберет английский язык.
К сожалению, пока что не удалось найти времени чтобы сделать настройки для чатов, но когда-нибудь в будущем это обязательно будет настраиваемой опцией. Придумать бы ещё, как сделать интерфейс настроек понятным и удобным. Судя по тому, что сейчас в голове - он таким не будет 🗿
Позже язык может автоматически поменяться в зависимости от сообщений в чате. Если аудитория предпочитает писать на русском языке, то бот также будет писать. Иначе выберет английский язык.
К сожалению, пока что не удалось найти времени чтобы сделать настройки для чатов, но когда-нибудь в будущем это обязательно будет настраиваемой опцией. Придумать бы ещё, как сделать интерфейс настроек понятным и удобным. Судя по тому, что сейчас в голове - он таким не будет 🗿
👍23🔥11❤3👌1
По просьбам трудящихся, добавил новые опции ⚡️
В профиле пользователя появилась метка geo. Если не углубляться в подробности, то у Телеграм есть пять дата-центров, расположенных в разных частях мира. При регистрации пользователя выбирается географически ближайший (для кода страны из его номера телефона), и все файлы пользователя хранятся там. С четырьмя дата-центрами примерно понятно где располагаются их пользователи, а вот для DC3 в моей выборке пользователей нашлось только 0.0025% активных. Данный атрибут отображается только для тех пользователей, для кого он известен.
Всех упомянутых в канале Scam Rs Alert мошенники теперь перечислены на странице https://lols.bot/scammers и там же можно найти ссылки на экспорт данного списка в форматах JSON, CSV и простым списком user_id. Списки обновляются автоматически, по мере добавления новых мошенников в базу бота.
В единственном методе API появился новый атрибут scammer - отображается только для тех, у кого он true. Например user_id 6214391938.
Написал краткое руководство пользователя: RU, EN.
Спасибо за обратную связь!🔥
В профиле пользователя появилась метка geo. Если не углубляться в подробности, то у Телеграм есть пять дата-центров, расположенных в разных частях мира. При регистрации пользователя выбирается географически ближайший (для кода страны из его номера телефона), и все файлы пользователя хранятся там. С четырьмя дата-центрами примерно понятно где располагаются их пользователи, а вот для DC3 в моей выборке пользователей нашлось только 0.0025% активных. Данный атрибут отображается только для тех пользователей, для кого он известен.
Всех упомянутых в канале Scam Rs Alert мошенники теперь перечислены на странице https://lols.bot/scammers и там же можно найти ссылки на экспорт данного списка в форматах JSON, CSV и простым списком user_id. Списки обновляются автоматически, по мере добавления новых мошенников в базу бота.
В единственном методе API появился новый атрибут scammer - отображается только для тех, у кого он true. Например user_id 6214391938.
Написал краткое руководство пользователя: RU, EN.
Спасибо за обратную связь!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥29👍15❤3👌1
This media is not supported in your browser
VIEW IN TELEGRAM
Видео-ответ на вопрос читаю ли я чаты, в которые добавляют бота 😆
Нет, обычно не читаю, потому что мне и своих чатов хватает. Но технически бот читает и обрабатывает все сообщения в тех чатах куда его добавили, а так же в тех чатах, куда добавили служебных юзер-ботов, помогающие ему в работе. И если мне по какой-то причине потребуется прочитать сообщения из чата - я их конечно же прочитаю.
В первом посте канала приводил статистику, можно обновить данные: бот сейчас защищает 1610 чатов от спама. Регулярно наблюдаемых чатов по прежнему 21к. Всего обработано 7.5млрд сообщений от 221млн пользователей из 91к чатов. В очереди на обработку ожидают 991к чатов, и пока что очередь растёт быстрее, чем обрабатывается, так как не нашёл места, где раздобыть кучу аккаунтов, которые бы не блокировал тг при первом же входе юзере-бота.
Из обновлений - добавил возможность выгрузить список пользователей, заблокированных ботом во всех чатах, где он состоит.
В полном виде: txt, json. За последний час: txt, json. Интервал обновления - 1 час.
UPD: https://api.lols.bot/lists
Документация: api.lols.bot (swagger)
Нет, обычно не читаю, потому что мне и своих чатов хватает. Но технически бот читает и обрабатывает все сообщения в тех чатах куда его добавили, а так же в тех чатах, куда добавили служебных юзер-ботов, помогающие ему в работе. И если мне по какой-то причине потребуется прочитать сообщения из чата - я их конечно же прочитаю.
В первом посте канала приводил статистику, можно обновить данные: бот сейчас защищает 1610 чатов от спама. Регулярно наблюдаемых чатов по прежнему 21к. Всего обработано 7.5млрд сообщений от 221млн пользователей из 91к чатов. В очереди на обработку ожидают 991к чатов, и пока что очередь растёт быстрее, чем обрабатывается, так как не нашёл места, где раздобыть кучу аккаунтов, которые бы не блокировал тг при первом же входе юзере-бота.
Из обновлений - добавил возможность выгрузить список пользователей, заблокированных ботом во всех чатах, где он состоит.
В полном виде: txt, json. За последний час: txt, json. Интервал обновления - 1 час.
UPD: https://api.lols.bot/lists
Документация: api.lols.bot (swagger)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍33🔥10🤝5🏆3
Не все администраторы чатов добавляют бота сразу как администратора. И по непонятной причине некоторые боты удаляют добавляемых в чат ботов, даже если их добавляет админ 🤨
В принципе причина удаления добавляемых ботов понятна - из-за ограничений API один бот ни только не видит сообщения других ботов, но также и не имеет прав на их удаление. Этим пользуются спамеры, добавляя в чат бота, который уже отправляет сообщение, и данное ограничение было бы понятно, если бы применялось только к действиям простых пользователей.
И так как Lols Bot при входе в чат делает различные проверки, то он не всегда успевает отправить приветственное сообщение с информацией раньше, чем его удалит другой бот. Чтобы бесследно не исчезать из чата, добавил костыль с быстрой отправкой краткого первого сообщения, которое впоследствии заменяется на полный вариант.
Кстати, у бота есть недокументированная опция: можно ответить на сообщение пользователя сообщением
Пользователь обеззвучивается навечно, если отправить команду без срока или указать срок меньше 30 секунд, либо больше 1 года.
В принципе причина удаления добавляемых ботов понятна - из-за ограничений API один бот ни только не видит сообщения других ботов, но также и не имеет прав на их удаление. Этим пользуются спамеры, добавляя в чат бота, который уже отправляет сообщение, и данное ограничение было бы понятно, если бы применялось только к действиям простых пользователей.
И так как Lols Bot при входе в чат делает различные проверки, то он не всегда успевает отправить приветственное сообщение с информацией раньше, чем его удалит другой бот. Чтобы бесследно не исчезать из чата, добавил костыль с быстрой отправкой краткого первого сообщения, которое впоследствии заменяется на полный вариант.
Кстати, у бота есть недокументированная опция: можно ответить на сообщение пользователя сообщением
мьют/мут/mute с указанием срока, и он выдаст ему соответствующее ограничение. Например:mute 5 days
мут 3 часа
мьют 1 месяц
mute 5d
Пользователь обеззвучивается навечно, если отправить команду без срока или указать срок меньше 30 секунд, либо больше 1 года.
👍16❤6🔥1😭1