Первый и второй способ предлагают нам аутентифицировать и авторизовать пользователя через специальный объект initData , который можно достать с помощью JavaScript. Объект имеет следующую структуру:
Проблема в том, что официальная документация хоть и предупреждает, но не особо объясняет зачем валидировать поле initData на сервере бота.
TL;DR
Мэллори: Привет Боб, я Алиса, дай мне информацию о балансе и сделай перевод на имя Мэллори.
Боб: Пожалуйста, Алиса, всё готово.
Мэллори: Привет Боб, я Алиса, дай мне информацию о балансе и сделай перевод на имя Мэллори.
Боб: Предоставьте, пожалуйста, валидную подпись Алисы.
Мэллори разводит руками
То есть нужно это затем, чтобы произвести безопасную аутентификацию (проверку подлинности запроса) и авторизацию (понять, что к боту пришла именно Алиса, а не Мэллори).
Без этой валидации бот сможет предоставлять критически важную информацию (например, вы делаете онлайн-банкинг в боте) просто по ID пользователя Telegram.
Что такое фишинг и как не попасться? | Генератор QR код на Python
Важно также понимать, что валидация должна происходить исключительно на серверной части. Валидация на клиентской части мало того, что бессмысленна, так ещё и скомпрометирует токен вашего бота.
Валидация, к слову, не совсем тривиальная. Разработчики Telegram, как обычно, не поленились и вместо проверенного стандарта JSON Web Token (JWT), реализовали свой собственный велосипед, да ещё и на базе обычного HMAC-SHA256 (то есть HS256 будь у нас JWT-токен). В результате initData представляет собой URL-encoded строку query-параметров. Для корректной валидации которой требуется следующая цепочка шагов:
- Декодируем строку, используя URL-encoding (важно, иначе значение с ключом user останется не декодированным).
- Полученные пары ключ-значения сортируем в алфавитном порядке.
- Исключаем ключ hash
- Из полученных пар составляем тело вида: auth_date=nquery_id=nuser= . Важно сохранить значение с ключом user в чистом JSON.
- Берем хэш от токена вашего бота с помощью алгоритма HMAC-SHA256 с ключом WebAppData .
- Берем хэш от полученного в шаге 4 тела с помощью того же алгоритма, а в качестве ключа используем хэш, полученный ранее в виде последовательности байтов (а не hex-репрезентации!).
- Преобразуем полученный хэш в hex-строку и сравниваем со значением ключа hash .
По аналогии с JWT, если валидация прошла успешно, пользователя можно считать аутентифицированным и переходить к авторизации с помощью предоставленного payload (в нашем случае это id в объекте user ).
— требуется собственный бэкенд для веб-части для валидации initData и работы с пользователем
Keyboard-кнопка
С первым и вторым способом всё понятно: вы получаете от Telegram подобие готового токена и поэтому реализация собственной аутентификации и авторизации не требуется, требуется только валидация.
Но с третьим способом ситуация с одной стороны проще, с другой сложней. Дело в том, что initData не приходит и наладить общение с серверной частью не выйдет. Ведь вы не будете знать кто к вам пришёл.
Однако при использовании этого способа появляется возможность использовать метод Telegram.WebApp.sendData() , который позволяет отправить сообщение боту напрямую, а тот предоставит его вам через long-polling или вебхуки. Стоит учесть, что после успешного выполнения веб-окно автоматически закроется, а бот отрапортует сервисным сообщением Вы успешно передали данные боту кнопкой «Test button».
Поэтому Telegram позиционирует этот способ как удобный способ сделать гибкую веб-форму ввода с полями типа date picker . Вернуть значения формы можно с помощью метода Telegram.WebApp.sendData() .
Нужно понимать, что в JS-файле этот метод является лишь прослойкой, само значение, переданное в sendData() отправляются далее через MTProto-метод sendWebAppData . Методы MTProto невозможно использовать без авторизации в Telegram, поэтому тут мессенджер берет безопасность полностью на себя.
В этом заключается плюс этого метода.
+ удобно для заполнения сравнительно простых форм ввода
+ наличие собственного бэкенда для Web-части не требуется
— initData не приходит, возможность авторизовать пользователя на своём бэкенде (даже если он есть) отсутствует
— отправить информацию боту можно только 1 раз
Кнопка в меню вложений
Есть также четвертый способ, который технически не отличается от первого и второго (только дополнительными полями в initData ), но в этом случае бот добавляется в меню вложений.
+ плюсы первых двух способов
+ возможность использовать бота в переписке с человеком
+ новый интуитивный механизм использования ботов Telegram
Источник: krasovs.ky
Делаем CPA-тусовку чище: бесплатный Telegram-бот с базой скамеров
Хотя мы достаточно часто упоминаем про нашего скам-бота в своем ТГ-канале, периодически в чатах видим сообщения, где арбитражники попадают на мошенников. Поэтому мы хотим предложить инструмент, который поможет вам сохранить свои деньги и избежать скама.
Получи скидку 10% по промокоду «Protraffic»
Содержание скрыть
Почему мы решили сделать бота или как обычно «греют» арбитражников
На скам можно попасть абсолютно везде: когда ты покупаешь прокси, акки, пластик, софт или не дай Бог «рабочие схемы». Просто кивни, если было: только ты вступаешь в какой-нибудь арбитражный чатик и тут тебе пишет гуру арбитража и предлагает лить по его связке по схеме 80/20. Он тебя всему научит, только лей. А и не забудь закупить расходники по его ссылкам, с которыми он потом пропадет. Вот, кстати, в закромах завалялся пример этой «классической связки»: Нам очень хочется, чтобы таких и им подобных личностей в нашем комьюнити не было, поэтому мы решили начать собирать базу мошенников с помощью нашего бота.
Check Scam Bot by ProTraffic
Итак. Теперь непосредственно про нашего бота. Принцип крайне прост: сомневаетесь, стоит ли работать с селлером без гаранта? Чекните его юзернейм в нашем бесплатном боте. Если на него уже были жалобы от других пользователей, то вы увидите такое сообщение.
Конечно, если мошенник завел себе новый аккаунт, то мы тут помочь ничем не сможем, но обычно скамеры не самый трудолюбивый народ и ограничиваются сменой юзернейма. В таком случае, бот все равно его пробивает. Также обращаем внимание, что мы не судьи и никого ни в чем не обвиняем. Наша задача только предостеречь, что с кем-то лучше перестраховаться и использовать гаранта. Если же вас обманули, пропали с деньгами, не сделали обещанного и т. п. — помогите сделать комьюнити чище. Зайдите в нашего бота и подайте жалобу. Для этого пришлите любое сообщение от мошенника боту. В случае, если переписка была стерта, можно просто скинуть его юзернейм. Дальше вы можете коротко описать ситуацию и нажать «Я отправил всю информацию». Мы рассмотрим вашу жалобу и добавим пользователя в базу. С момента запуска бота, мы уже получили более 100 жалоб на скамеров, так что заходите, пробивайте сомнительных персонажей и добавляйте новых.Как еще проверить юзера, если его нет в Check Scam Bot
Для начала, конечно, пробейте контакт через нашего бота. Ничего нет? Это еще не гарантия безопасной сделки/сотрудничества. Потратьте полчаса времени и:
- Зайдите к нам в чат и спросите, кто покупал/работал в этим человеком. Кто-то из 8 000+ участников точно сможет что-то подсказать.
- Чекните тут. Если есть объявление — значит селлер адекватный и не будет проблем первые пару сделок заключить через гаранта. Кстати, мы, ProTraffic, в данном случае можем выступить в качестве гаранта. Все контакты в описании тут.
- Потратьте 250 рублей и оформите подписку на Глаз Бога. Он ищет в том числе по юзернейму в Telegram. Не всегда, но некоторых личностей он пробивает и в VK, и даже в Viber, через который скамер может общаться с мамой. Если у селлера в других соцсетях нет и намека на его магазин, скорее всего это кидок.
В любом случае, если вы работаете с человеком впервые, ничто так не внушает доверия, как гарант. Адекватные ребята никогда не откажутся. А что касается «классических» схем скама — не стесняйтесь уточнять инфу в нашем чате. Лучше выслушать пару ласковых от несчастного токсика, чем потерять деньги. С вами был ProTraffic, добавляйте бота в закладки, чтобы не потерять!
Источник: protraffic.com
Злоумышленники выманивают деньги через «умный» чат-бот для поиска интимных фотографий в Telegram
Эксперты «Лаборатории Касперского» раскрыли подробности новой скам-схемы в Telegram. Злоумышленники заманивают людей в чат-бот, который якобы работает на основе кода ChatGPT 4.0. Авторы бота уверяют, что с его помощью можно искать слитые фотографии человека, имея на руках ссылку на его профиль в социальных сетях или номер телефона. Цель мошенников — украсть деньги пользователей. Что за бот. В описании чат-бота говорится, что им уже воспользовались более 10 тысяч человек, а в базе сервиса собрано свыше 10 миллионов фото и видео. Авторы бота предлагают таким образом проверить романтического партнёра. Как работает скам-схема. Если запустить чат-бот, появится сообщение с предложением прислать ссылку на профиль интересующего человека в одной из нескольких популярных социальных сетей. После этого сервис начнёт имитировать процесс работы — сначала он выдаст сообщение «идёт поиск», а затем, что «страница найдена в базе» и «идёт отправка материала». На этом этапе человек увидит некие скриншоты, однако разобрать, что на них изображено, невозможно — само изображение скрыто. Авторы бота указывают предполагаемую дату слива материалов, а также сколько было обнаружено интимных фотографий и видео с человеком. На этом этапе пользователю сообщают, что фотографии уже собраны и готовы к отправке. Однако, чтобы их получить, необходимо заплатить 399 рублей за разовый доступ к базе или 990 рублей — за безлимитный. Если перевести деньги, никаких фотографий человек не получает, а его деньги достаются злоумышленникам. «Мы видим, что мошенники часто используют чат-боты в Telegram для выманивания денег у пользователей. Вероятно, это связано с тем, что не все понимают, как работают подобные платформы. Распространяются ссылки на мошеннические чат-боты обычно в комментариях под постами в различных каналах», — говорит Ольга Свистунова, контент-аналитик «Лаборатории Касперского». Чтобы не попасться на удочку злоумышленников, эксперты по кибербезопасности рекомендуют:
- критически относиться к крайне заманчивым и подозрительным предложениям в сети;
- не переходить по ссылкам из сомнительных сообщений, даже если их прислали знакомые;
- установить надёжное защитное решение, которое не даст перейти по фишинговой или сам-ссылке.
Проверить себя на готовность противостоять мошенникам можно пройдя тест на нашем сайте по ссылке.
Источник: samaratoday.ru