LI Solutions

Telegram zet Mini Apps op 20 juli op slot. Check de jouwe voordat hij breekt.

Telegram locks down Mini Apps on July 20. Check yours before it breaks.

Belangrijkste inzichten

20 juli, automatisch, iedereen

Telegram zet op 20 juli 2026 cross-origin-bescherming aan voor alle Mini Apps. Methods die worden aangeroepen vanaf een andere origin dan je geregistreerde domein houden simpelweg op met werken.

Betalingen en logins zijn de gebruikelijke verdachten

Gehoste checkoutpagina's en OAuth-providers die Mini App-methods aanroepen vanaf hun eigen domein falen geruisloos. Er wordt geen fout gegooid; de aanroep gebeurt simpelweg nooit.

De opt-out schuift de aansprakelijkheid naar jou

Via BotFather kun je de bescherming uitzetten, maar de formulering maakt jou verantwoordelijk voor elke pagina die je app kan bereiken. Behandel het als een noodventiel, niet als een instelling.

Zes dagen van tevoren is de echte les

Bouwen op andermans platform betekent dat verandering komt op hun tijdschema. Single-origin-architectuur is wat aankondigingen als deze saai maakt in plaats van urgent.

Op 14 juli bracht Telegram Bot API 10.2 uit. Het grootste deel van de changelog is het gebruikelijke prettige spul: rich messages kregen betere media-afhandeling, bots kunnen nu zien wanneer het betaalde abonnement van een gebruiker verandert. En dan, onderaan, onder 'General', één bullet met echte tanden als je een Mini App draait: vanaf 20 juli werken Mini App-methods niet meer vanaf welke origin dan ook behalve het eigen domein van de Mini App. De bescherming gaat automatisch aan, voor elke Mini App, of je de changelog nu gelezen hebt of niet. Dat is zes dagen van tevoren.

Een korte vertaling voor wie niet in deze stack leeft. Een Mini App is een webapp die binnen Telegram draait, en hij praat met Telegram via een smalle message bridge: een factuur openen, het contact van de gebruiker opvragen, om biometrie vragen, de app sluiten. Die aanroepen zijn de 'Mini App-methods'. Tot nu toe kon elke pagina die zijn weg naar de webview van je app vond ze gebruiken. Na 20 juli kunnen alleen pagina's die worden geserveerd vanaf het domein dat je bij BotFather registreerde dat nog.

Is je Mini App één codebase op één domein, dan kun je stoppen met lezen en weer aan het werk gaan. Stroomt er ergens in je app geld of login via een tweede domein, dan heb je tot maandag.

Waarom Telegram de trekker overhaalt

Het gat dat wordt gedicht is echt. Wanneer je Mini App linkte naar een pagina op een ander domein of die embedde, erfde die pagina de bridge. Een gecompromitteerde partnerpagina of een gekaapt script kon dezelfde methods afvuren die je eigen code gebruikt, met de identiteit van je app en de sessie van je gebruiker erachter.

Dit is al eens gebeurd. In 2024 kon een geprepareerde open-link-aanroep via de bridge Telegram Web-sessies kapen (CVE-2024-33905, gepatcht in de webclient). Het platform verplaatst inmiddels echt geld via facturen, Stars en abonnementen, dus een open bridge was niet langer een acceptabele default.

Er is een opt-out, en die komt met een zin die je twee keer moet lezen. Je kunt de bescherming uitzetten via de BotFather Mini App, maar daarmee 'erken je dat het de verantwoordelijkheid van de bot is om ervoor te zorgen dat de Mini App geen links naar onbetrouwbare sites bevat'. Dat is een aansprakelijkheidsoverdracht vermomd als toggle. Gebruik hem als noodventiel terwijl je je architectuur fixt, niet als permanente instelling.

Wiens app maandag stukgaat

De storingen zullen zich clusteren in flows die domeinen kruisen:

  • Gehoste betaalpagina's. De gebruiker betaalt op het domein van je provider, en die pagina roept een method aan om de webview te sluiten of succes te melden. Vanaf 20 juli wordt die aanroep genegeerd, en strandt je gebruiker op een bevestigingspagina zonder te weten of er iets is gebeurd.
  • Login via derden. OAuth-flows die eindigen op het domein van de provider en daarna naar de bridge grijpen om de controle terug te geven aan de app.
  • Producten met meerdere domeinen. Een marketingdomein en een app-domein, of domeinen per regio, waarbij het secundaire domein nog steeds de SDK aanroept.
  • Widgets en white-label-setups. Alles met een SDK-smaakje dat wordt geserveerd vanaf het CDN van een leverancier in plaats van je eigen origin.
  • Preview- en stagingbuilds. Deploy previews op platform-gegenereerde URL's zijn ook aparte origins. Je productie-app kan prima in orde zijn terwijl QA stilletjes stopt met werken, of andersom.

De faalmodus is van het vervelende soort: geruisloos. Er wordt geen fout gegooid, er crasht niets. De aanroep gebeurt gewoon niet. Een checkout die een jaar lang werkte eindigt bij een knop die niets doet, en je supportinbox is hoe je erachter komt.

De audit, in één middag

  1. Breng elke origin in kaart die de bridge raakt. Grep de codebase op de SDK-import en op directe postMessage-aanroepen, loop daarna elke userflow door en noteer elk domein waar die doorheen komt.
  2. Kijk het scherpst naar betalingen en auth. Elke stap waar de gebruiker je domein verlaat en er iets hoort te gebeuren wanneer hij terugkomt is een kandidaat.
  3. Haal de aanroepen naar huis. De schone fix is een dunne terugkeerpagina op je geregistreerde domein: de externe pagina redirect daarheen, en die pagina doet de bridge-aanroep. De meeste teams kunnen dit in een dag shippen.
  4. Test in echte clients. iOS-, Android- en desktop-webviews gedragen zich niet identiek, en dit is niet de week om de docs boven het apparaat te vertrouwen.
  5. Haal je maandag niet, zet de bescherming dan uit, fix het en zet haar weer aan. De bescherming permanent uit laten staan betekent verantwoordelijk zijn voor elke pagina die je app ooit kan bereiken.

Het grotere signaal

Zoom uit en dit is het derde platform dit jaar dat de regels voor builders halverwege de vlucht aanscherpt. Apple begon AI-gegenereerde apps te verwijderen die zijn kwaliteitslat niet halen. Shopify zette Scripts op 30 juni uit en brak daarmee de checkoutlogica van winkels die nog niet waren gemigreerd. Nu Telegram, met de kortste aankondigingstermijn van de drie.

Geen van deze stappen is vijandig. Het is wat platforms doen zodra echt geld en echte gebruikers arriveren: de defaults verharden en de overgangsperiodes krimpen. Mini Apps passeerden die grens al een tijd geleden. Een half miljard mensen heeft er één gebruikt, betalingen zijn native, en Bot API-releases landen inmiddels maandelijks. Rich Messages in juni, abonnementsevents en deze lockdown in juli.

De les voor wie op gehuurde grond bouwt is niet om daar te stoppen met bouwen. Het bereik is waarom je kwam. De les is architecturaal: houd je app op één origin, houd andermans pagina's weg bij de bridge, en behandel elk extern domein in een userflow als een dependency die met één changelog-bullet kan worden ingetrokken. Teams die zo bouwen lezen aankondigingen als deze met koffie, niet met een war room.

Telegrams Mini App-gok is nog steeds een van de betere asymmetrieën in consumentensoftware: een miljard gebruikers, geen appstore-review, bouwkosten die de meeste founders kunnen dragen. Het platform is net gestopt met nonchalant doen over security, en dit wordt niet de laatste aanscherping. Kruist je app domeinen, dan heb je het weekend.

Veelgestelde vragen

Wat stopt er precies met werken op 20 juli 2026?

Mini App-methods, de bridge-aanroepen die een Mini App naar Telegram doet (de app sluiten, een factuur openen, contactgegevens opvragen, biometrie), worden genegeerd wanneer ze komen van een andere origin dan het geregistreerde domein van de Mini App. Code die op je eigen domein draait wordt niet geraakt.

Gaat mijn Mini App stuk?

Als de hele app op één domein leeft en geen enkele externe pagina ooit de bridge aanroept, nee. Als een betaalprovider, loginprovider of een embedded pagina op een ander domein Mini App-methods aanroept als onderdeel van een flow, stopt die stap met werken. Deploy previews op platform-gegenereerde URL's tellen ook als aparte origins.

Kan ik de bescherming uitzetten?

Ja, via de BotFather Mini App. Maar de opt-out-tekst maakt het jouw verantwoordelijkheid om ervoor te zorgen dat de app geen links naar onbetrouwbare sites bevat, en dat is een aansprakelijkheid die je waarschijnlijk niet wilt. Gebruik hem om tijd te kopen terwijl je bridge-aanroepen naar je eigen domein verplaatst, en zet de bescherming daarna weer aan.

Waarom doet Telegram dit nu?

Het oude gedrag liet elke pagina in de webview van je app de bridge gebruiken, en daar is eerder misbruik van gemaakt: CVE-2024-33905 toonde dat een geprepareerde open-link-aanroep Telegram Web-sessies kon kapen. Nu betalingen, Stars en abonnementen native op het platform zitten, was de bridge openlaten voor elke embedded pagina niet langer te verdedigen.