Origin-защита Mini App: что меняется 20 июля 2026

С 20 июля 2026 года Telegram автоматически включает новую защиту для всех Mini Apps: методы Telegram.WebApp перестают работать на страницах, открытых внутри Mini App с чужого домена. Если ваша воронка заканчивается в Mini App и внутри неё открываются оффер, платёжка или прокладка на другом домене - проверьте её. Поверхности Leadgram изменение не затрагивает: трекинг-ссылки, hosted-лендинг, события и постбэки работают как работали.

Что меняется 20 июля

Bot API 10.2 (анонс 14 июля 2026) ужесточил безопасность Mini Apps: вызовы методов Mini App с origin, отличного от домена самой Mini App, блокируются. До сих пор любая страница, открытая внутри webview вашей Mini App, могла дергать Telegram.WebApp.* - разворачивать окно, закрывать приложение, показывать MainButton, отправлять данные боту. С 20 июля это разрешено только страницам на том домене, на котором Mini App зарегистрирована в BotFather. Защита включается автоматически для всех Mini Apps, без каких-либо действий с вашей стороны.

Что при этом НЕ ломается: сторонние страницы внутри webview по-прежнему открываются, обычные ссылки и HTTP-редиректы работают, t.me-ссылки и деплинки живут своей жизнью, серверные события уходят как раньше. Блокируется ровно одно - вызов методов Telegram с чужого домена.

Кого это касается

Проверять воронку нужно, если выполняется хотя бы одно:

  • Внутри вашей Mini App пользователь переходит на страницы другого домена - оффер рекламодателя, платёжную страницу, промежуточную прокладку - и эти страницы вызывают Telegram.WebApp.* (типичные кандидаты: close(), expand(), MainButton, sendData(), openLink(), HapticFeedback).
  • В BotFather как URL вашей Mini App указан не конечный домен приложения, а редирект: трекер, шортенер, прокладка. Домен регистрации и домен, где реально исполняется код, не совпадут - и методы отвалятся у всего приложения.

Не касается вас, если воронка заканчивается стартом бота или вступлением в канал, если Mini App целиком живёт на одном домене, или если вы шлёте miniapp_launch в Leadgram по S2S - серверные вызовы к webview-защите отношения не имеют.

Не указывайте трекинг-ссылку Leadgram как URL Mini App в BotFather. Наш редирект отработает, но Mini App окажется зарегистрирована на домене трекера, и после 20 июля методы Telegram на вашем реальном домене будут заблокированы. Для атрибуции запусков передавайте click id через start_param и фиксируйте событие miniapp_launch - как именно, описано в Mini Apps.

Как проверить свою воронку

  1. Откройте свою Mini App в Telegram Desktop или web.telegram.org и пройдите путь пользователя до конца - до оффера, платёжки, финального экрана.
  2. На каждом шаге смотрите на домен страницы (в desktop-клиенте и вебе доступны DevTools). Выпишите все домены, отличные от того, что указан в BotFather.
  3. Для каждого чужого домена проверьте код страницы: есть ли обращения к window.Telegram.WebApp. Grep по исходникам на Telegram.WebApp быстрее любого ручного клика.
  4. Если чужих доменов с такими вызовами нет - вы не затронуты, ничего делать не нужно.
  5. Если есть - у вас два пути: перенести вызовы на зарегистрированный домен (правильный) или отключить защиту (крайний, см. ниже).

Самый частый безболезненный фикс: страница на чужом домене вызывает только close() или openLink(). Замените их на обычную ссылку https://t.me/... или редирект - поведение почти то же, а от WebApp-моста страница перестаёт зависеть.

Отключение защиты через BotFather

Если переделать воронку не успеваете, Telegram оставил opt-out. Он делается в Mini App самого BotFather: откройте @BotFather, запустите его Mini App, выберите нужного бота и в настройках Mini App отключите origin-защиту. Отключая её, вы по условиям Telegram принимаете на себя ответственность за то, что внутри вашей Mini App нет ссылок на недоверенные сайты.

Относитесь к opt-out как к обезболивающему, а не лечению: он возвращает поведение "любая страница внутри webview управляет приложением", то есть ровно ту дыру, которую Telegram закрывает. Правильная целевая картина - все вызовы Telegram.WebApp живут на зарегистрированном домене, защита включена.

Что с поверхностями Leadgram

Мы проверили каждую поверхность продукта, которая касается Telegram:

  • Трекинг-ссылки и редиректы - серверный 302, ни строчки клиентского Telegram-кода. Не затронуты.
  • Hosted-лендинг - доставляет в Telegram через tg:// и t.me-ссылку, методы Mini App не использует. Не затронут.
  • Сниппет Mini App - читает только параметры запуска и шлёт их на наш бэкенд, методы Telegram.WebApp не вызывает. Не затронут by design, см. Mini Apps.
  • Событие miniapp_launch по S2S - принимается через события API, браузерная защита на него не влияет. Не затронуто.
  • Постбэки, CAPI, Флоу - серверные механики, вне зоны изменения. Не затронуты.

Ничего перенастраивать в Leadgram не нужно. Единственное действие с вашей стороны - проверить собственную Mini App-воронку по чек-листу выше, если она у вас есть.