1001Ferramentas
🛡️ Segurança

Construtor de Trusted Types policy

Gera diretiva CSP require-trusted-types-for e trusted-types com nomes de políticas — mitigação anti-XSS moderna.

Trusted Types: fechar o innerHTML de vez

A maior parte do XSS baseado em DOM entra por um punhado de pontos conhecidos: innerHTML, outerHTML, document.write, o src de um script, eval. Trusted Types é o mecanismo do navegador que fecha todos eles de uma vez — com a política ligada, atribuir uma string comum a qualquer um desses pontos lança erro. Só passa objeto criado por uma política que você declarou.

Liste os nomes das políticas que a sua aplicação cria e a página monta o cabeçalho: a diretiva trusted-types com os nomes permitidos, mais require-trusted-types-for com o valor script, que é o que efetivamente liga a exigência. Há ainda a opção de permitir nomes duplicados, útil quando o mesmo código é carregado duas vezes, e a de emitir em modo somente relatório, com destino de report-to.

O caminho de adoção que costuma dar certo é ir pelo modo de relatório primeiro. Você sobe o cabeçalho Report-Only, deixa rodar alguns dias e coleta os pontos que violariam a política — quase sempre aparece uma biblioteca de terceiros que ninguém lembrava que escrevia HTML direto. Só depois de sanear esses pontos vale trocar para o cabeçalho que bloqueia.

Perguntas frequentes

Funciona em todos os navegadores?
Nos baseados em Chromium, sim. Firefox e Safari ainda não aplicam a exigência, e nesses o cabeçalho é ignorado sem erro. Isso significa que Trusted Types é uma camada extra, não a única defesa — sanear entrada e escapar saída continuam obrigatórios.
Preciso criar uma política chamada default?
Não, e usar a default merece cautela: ela captura toda atribuição que não indicou política explícita, o que faz o código antigo voltar a funcionar sem alteração — e também esvazia boa parte da proteção. Ela serve como degrau de migração, não como destino.
Isso substitui uma biblioteca de sanitização?
Não. Trusted Types garante que o HTML passou por uma função sua; o que essa função faz é problema seu. O padrão comum é a política chamar o DOMPurify dentro do createHTML — os dois juntos, um garantindo que ninguém escapou do caminho e o outro limpando o conteúdo.

Ferramentas Relacionadas