Первый и второй способ предлагают нам аутентифицировать и авторизовать пользователя через специальный объект 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
Итак. Теперь непосредственно про нашего бота. Принцип крайне прост: сомневаетесь, стоит ли работать с селлером без гаранта? Чекните его юзернейм в нашем бесплатном боте. Если на него уже были жалобы от других пользователей, то вы увидите такое сообщение.


Как еще проверить юзера, если его нет в 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