Безопасность Web Apps в Telegram ботах

в 20:13, , рубрики: ajax, javascript, telegram, web apps, информационная безопасность
Безопасность Web Apps в Telegram ботах - 1

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

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

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

Безопасность Web Apps в Telegram ботах - 2

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

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

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

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

Безопасность Web Apps в Telegram ботах - 4

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

Безопасность Web Apps в Telegram ботах - 5

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

Безопасность Web Apps в Telegram ботах - 6

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

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

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

Автор:
renat898

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js