16 апреля 2022 Telegram презентовал новую фичу - Web apps, с помощью которой можно открывать веб страницы в боте без перехода в браузер. Подробнее можно почитать в источнике https://core.telegram.org/bots/webapps.

Однозначно это удобная функция для пользователей и для разработчиков. Но, так как это веб приложение, можно просмотреть что под капотом. Telegram привел в качестве примера бота @DurgerKingBot, его и разберем.

Открываем telegram web, находим бота, запускаем его.

Нажимаем Order Food, откроется веб приложение

  1. Здесь видим адрес сайта. Открываются двери для DDoS, брутфорса. Если вы используете webhook, то ссылка на него должна быть сложной (например ключ бота, как предлагает Telegram), никаких tg, telegram, tgwebhook и т.п.

  2. Можно узнать, какие домены на этом же ip. Например через 2ip.ru, и если есть боты, которых вы не хотите афишировать, держите их на другом ip. Так же не желательно держать код бота с веб приложением на shared хостинге, так как есть вероятность встретить нежданного "соседа", либо выбирайте надежный shared хостинг

  3. Находим js, изучаем его

Ищем нужные методы, например событие создания заказа

и можем отправлять свои данные

Поэтому в ajax надо

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

  2. на стороне сервера проверять на SQL инъекции, XSS, препарируйте входящие данные

Комментарии (4)


  1. polRk
    07.05.2022 23:34
    +16

    А причем тут telegram web apps? Статья ни о чём…


  1. semenovs
    08.05.2022 12:19

    А как открыть консоль разработчика в WebBotе?


    1. cleverate
      08.05.2022 14:39
      +1

      В web версии telegram


  1. cleverate
    08.05.2022 14:41
    +1

    Это обычная демка на коленке, к чему вообще эта статья?