Um runtime universal que executa código escrito por qualquer um, no telefone de qualquer um, com acesso a pagamentos e identidade, não é primeiro um problema técnico: é um problema de confiança. Dez anos atrás a China encarou isso de frente: WeChat e Alipay abriram seus super-apps para milhões de desenvolvedores externos, e esse código agora roda em cerca de um bilhão de dispositivos, movendo dinheiro real. O fato de isso não ter se tornado uma manchete de vazamento diário é a verdadeira história.

A lição não é "construir uma sandbox". É construir uma pilha de confiança, onde cada camada elimina uma classe de desastre.

A pilha de confiança que a China de fato entregou

CamadaO que as plataformas fazemRisco que eliminaPortável para um runtime universal
1. Isolamento de motorA lógica roda em um motor JS separado (JSCore / V8), o render em um WebView; cada mini-programa tem seu próprio processo ou V8 IsolateCódigo escapando para o host, roubo de dados entre appsSim — nível de motor
2. Sem DOM/BOM cruA camada lógica não tem document, window nem localStorage; a UI muda só por data bindingInjeção de UI pós-revisão, XSS, mutação silenciosaSim
3. Lista branca de redeToda requisição passa pelo host e só HTTPS para domínios permitidosVazamento de dados para servidores do atacante, phishingSim — nível de política
4. APIs em níveis + consentimentoChamadas sensíveis (câmera, localização, contatos) passam por uma ponte do host e exigem autorização explícitaColeta silenciosa de PIISim
5. Pacote revisadoO código é servido de um CDN só após revisão da plataforma, assinado e versionadoCargas adulteradas ou injetadas, abuso de supply chainParcial — precisa de pipeline de revisão de catálogo
6. Monitoramento em runtimeDetecção de anomalias mais um canal de denúncia de usuáriosAbuso pós-publicaçãoSim — telemetria

As quatro primeiras camadas são engenharia pura de runtime e transitam limpamente para qualquer host. A camada 5 depende de ter um catálogo — uma superfície de distribuição curada e revisada —, que é justamente a metade do "catálogo aberto" da CrossMiniApp. A camada 6 é disciplina operacional.

Por que isso importa para um runtime universal

A promessa da CrossMiniApp é "escreva uma vez, rode no rail de qualquer host". Essa promessa só vale algo se o runtime impuser a pilha de confiança. Um WebView simples que carrega código de terceiros não é um runtime: é uma superfície de ataque. O IP real é a execução sandboxeada: isolar o motor, proibir o DOM cru, forçar toda chamada de rede por uma política e trancar as APIs sensíveis atrás de um consentimento.

Há um segundo nível: esta é a razão pela qual um catálogo aberto funciona. Justamente porque o runtime restringe o que o código pode fazer, você pode se dar ao luxo de deixar muitos desenvolvedores publicarem. A restrição no runtime é o que torna a abertura no catálogo segura.

A regra

Ao executar código de outra pessoa, a segurança não é uma função que você adiciona depois. É a fundação que você entrega no dia um — isolamento de motor, sem DOM cru, listas brancas de rede, APIs em níveis, código revisado, monitoramento em runtime. As plataformas chinesas provaram que escala para um bilhão de usuários. Um runtime universal também pode.

Fontes