Uma landing page pode começar com um único HTML e terminar carregando Analytics, pixel de anúncios, chat, vídeo, formulário, mapa, biblioteca de interface e gerenciador de tags. Cada script de terceiros adiciona uma capacidade, mas também executa código que sua equipe não controla completamente.
Quando a página é criada com IA, essa pilha pode crescer sem uma decisão explícita. O agente encontra um snippet, resolve um efeito visual com uma biblioteca externa ou inclui uma integração “comum” para completar o pedido. A página funciona, mas ninguém registrou de onde o código veio, quais dados ele acessa ou o que acontece quando o fornecedor falha.
Revisar scripts de terceiros antes de publicar é transformar dependências invisíveis em decisões verificáveis.
Por que um <script> merece revisão
JavaScript carregado por uma página executa no navegador da pessoa visitante. Dependendo de como foi integrado, pode observar o documento, ler campos, gravar armazenamento local, fazer requisições e carregar outros recursos.
A OWASP lista três riscos centrais de JavaScript de terceiros: perder controle sobre mudanças no código, executar código arbitrário no cliente e divulgar informações sensíveis a terceiros.
Isso não significa remover toda integração. Significa saber:
- qual problema o script resolve;
- quem fornece e mantém o código;
- de qual URL ele é carregado;
- quais páginas precisam dele;
- quais dados ele consegue receber;
- quais outros domínios ele chama;
- como é atualizado;
- qual é o comportamento quando falha.
Sem esse inventário, uma alteração do fornecedor pode mudar sua landing page sem aparecer no diff do repositório.
Comece pelo pacote que será publicado
Não limite a busca ao arquivo principal. Revise a pasta final e procure:
- elementos
<script src="...">; - scripts inline;
- iframes e widgets incorporados;
- chamadas
fetch(),XMLHttpRequest,sendBeacon()e WebSocket; - pixels inseridos como imagem;
- tags adicionadas por um gerenciador;
- imports remotos em CSS;
- bibliotecas copiadas para a pasta de assets;
- URLs de CDN dentro de bundles minificados.
O contrato de publicação envia HTML e assets como um pacote estático. O Site no Ar publica os arquivos recebidos; a revisão da finalidade e do comportamento de cada integração continua sendo responsabilidade de quem prepara a versão.
Monte um inventário pequeno e útil
Use uma linha por integração:
| Campo | Exemplo de evidência |
|---|---|
| Nome e fornecedor | serviço e documentação oficial |
| Finalidade | medir visitas, exibir vídeo, receber chat |
| Arquivo ou página | onde o script entra |
| Origem | URL exata ou asset local |
| Dados acessados | URL, evento, campo, identificador |
| Destinos de rede | domínios observados no navegador |
| Carregamento | crítico, defer, async ou após interação |
| Proteção | versão fixa, SRI, iframe ou outro isolamento |
| Responsável | pessoa que aprova e revisa mudanças |
| Falha esperada | o que permanece funcionando sem o script |
“Script de marketing” não é uma finalidade suficiente. Registre o evento real e o dado necessário. Isso permite remover integrações redundantes e detectar coleta excessiva.
Questione a necessidade antes de otimizar
Para cada script, faça três perguntas:
- A página precisa dessa capacidade agora?
- Existe uma opção mais simples ou local?
- O resultado justifica custo, risco e manutenção?
Uma biblioteca inteira para uma animação pequena pode ser substituída por CSS. Um vídeo pode usar uma imagem de capa e carregar o player apenas após interação. Um widget pode ficar restrito à página em que é útil.
Remover uma dependência desnecessária é mais confiável do que tentar controlar seu comportamento depois.
Revise como o script é carregado
Prefira versões explícitas
URLs genéricas como latest podem mudar o código sem revisão. Quando o fornecedor permitir, fixe uma versão e registre como a atualização será feita.
Copiar o arquivo para o próprio pacote aumenta controle sobre mudanças, mas transfere para sua equipe a obrigação de acompanhar correções e licenças. Não trate vendorização como manutenção automática.
Use Subresource Integrity quando couber
Subresource Integrity, ou SRI, permite que o navegador compare o arquivo baixado com um hash esperado. Se o conteúdo não corresponder, o recurso não é executado.
A documentação da MDN sobre SRI explica que scripts externos também precisam de configuração CORS compatível. Portanto, SRI só funciona quando o fornecedor oferece um arquivo estável e permite esse uso.
Na marcação, o src deve apontar para a versão revisada, o atributo integrity deve conter o hash calculado para aquele arquivo e crossorigin="anonymous" deve acompanhar o recurso externo. Não copie o hash de um exemplo genérico: calcule ou obtenha o valor correspondente ao arquivo real e teste o carregamento.
Considere isolamento
Conteúdo incorporado em iframe pode receber restrições com sandbox, allow e uma política de origem compatível. O isolamento precisa ser testado: permissões amplas demais perdem o benefício; restrições incorretas quebram a função.
Não prometa controles que a hospedagem não configurou
Content Security Policy controla quais fontes de código e conteúdo o navegador pode carregar. Uma política forte normalmente é enviada como cabeçalho HTTP e exige testes cuidadosos.
A orientação prática da MDN para CSP recomenda testar primeiro em modo de relatório e explica que hashes combinam com conteúdo estático. Mas não presuma que adicionar uma tag ao HTML reproduz todo o contrato de cabeçalhos, relatórios e compatibilidade da sua hospedagem. Confirme a capacidade da plataforma antes de documentar CSP como proteção ativa.
Controle quais dados saem da página
Um script pode ser legítimo e ainda receber mais dados do que precisa. Revise eventos e payloads:
- nomes, e-mails e telefones;
- conteúdo digitado antes do envio;
- parâmetros da URL;
- identificadores de campanha;
- endereço completo da página;
- IDs de usuário ou cliente;
- mensagens de erro com conteúdo interno;
- estado de autenticação;
- dados inseridos na camada de eventos.
Evite colocar informações pessoais ou segredos em nomes de eventos, URLs e objetos globais. O que entra em uma camada de dados pode ser lido por outras tags configuradas no mesmo gerenciador.
Se a página precisa de consentimento ou de uma avaliação jurídica, registre a pendência e envolva a pessoa responsável. Um agente pode mapear scripts e dados observáveis; não deve inventar a base legal da operação.
Trate o gerenciador de tags como código
Um gerenciador de tags reduz deploys de HTML, mas cria outro canal de mudança. Uma nova tag pode entrar em produção sem alterar o repositório da landing page.
Defina:
- quem pode publicar o contêiner;
- quais ambientes existem;
- como uma mudança é revisada;
- onde a versão aprovada fica registrada;
- como reverter;
- quais tags podem carregar outras tags;
- quando o inventário da landing page deve ser atualizado.
Inclua a versão do contêiner no handoff. “O HTML não mudou” não é evidência de que a página continua executando o mesmo conjunto de scripts.
Dê limites claros ao agente
Use um pedido que force visibilidade:
Revise a pasta publicável desta landing page.
- Liste scripts, iframes, pixels, CDNs e chamadas de rede de terceiros.- Para cada item, informe finalidade, origem, dados enviados e páginas afetadas.- Não adicione bibliotecas ou tags novas sem aprovação.- Sinalize URLs sem versão fixa e scripts que carregam outros scripts.- Verifique se o recurso pode usar defer, carregamento após interação, SRI ou isolamento.- Não invente consentimento, base legal ou compatibilidade do fornecedor.- Interrompa se encontrar credencial privada no frontend.- Devolva o inventário, os riscos e os testes executados.Esse contrato é especialmente importante ao republicar. Peça ao agente para comparar o inventário anterior com o novo, não apenas dizer que a página “continua funcionando”.
Teste com e sem cada integração
Na versão local e na URL publicada, verifique:
- console sem erros inesperados;
- requisições apenas para os domínios aprovados;
- ausência de dados sensíveis nos payloads;
- CTA e formulário funcionando;
- navegação por teclado preservada;
- conteúdo principal disponível quando o terceiro falha;
- carregamento em conexão lenta;
- layout sem saltos causados por widgets;
- comportamento quando cookies ou armazenamento são bloqueados;
- versão móvel real.
O guia de acessibilidade para sites criados por IA ajuda a revisar foco, teclado, conteúdo e movimento. Já o guia de Core Web Vitals separa medições de laboratório e dados de campo para investigar o impacto de integrações no desempenho.
Verifique a URL pública, não apenas o preview
O ambiente publicado pode ter domínio, cache e regras de rede diferentes. Depois do deploy:
- abra a URL final em uma sessão limpa;
- registre os domínios carregados;
- confira erros no console;
- execute o fluxo principal;
- bloqueie temporariamente o domínio de um terceiro e observe a degradação;
- compare o inventário com o que realmente apareceu;
- registre a versão aprovada.
No Site no Ar, peça ao agente conectado por MCP para publicar os arquivos revisados, confirme Site e slug e encerre com a URL verificada. O checklist de QA organiza os demais gates de conteúdo, responsividade, acessibilidade, assets e deploy.
Mantenha o inventário vivo
Scripts de terceiros mudam. Revise o inventário quando:
- uma campanha começa ou termina;
- o fornecedor atualiza o snippet;
- uma biblioteca recebe correção de segurança;
- o domínio ou a estrutura da página muda;
- uma nova tag entra no gerenciador;
- dados coletados ou destinos de rede mudam;
- a landing page é republicada.
Defina uma data de revisão e um responsável. O processo de auditoria de conteúdo mostra como transformar itens com prazo de validade em uma fila de manutenção; aplique a mesma disciplina às integrações.
Checklist antes de publicar
- Cada script tem finalidade e responsável.
- Origens e domínios de rede estão inventariados.
- Dependências desnecessárias foram removidas.
- Versões estão fixas quando o fornecedor permite.
- SRI ou isolamento foram avaliados e testados.
- Nenhuma credencial privada está no frontend.
- Eventos e payloads não levam dados além do necessário.
- O fluxo principal funciona quando um terceiro falha.
- Acessibilidade e desempenho foram reavaliados.
- A URL pública corresponde ao inventário aprovado.
- Mudanças pelo gerenciador de tags seguem revisão e reversão.
Uma landing page não fica segura porque seus scripts são populares. Ela fica mais controlável quando cada integração tem propósito, limite, evidência e um caminho claro de remoção.
