- Navios
- 20 de agosto de 2026 às 04:25 UTC
- Autor
- Kamo
- Enviar
- 00ee182
Re-terra os cabeçalhos de segurança depois de eu ter derrubado o site com eles, menos o Uma directiva que o fez, mais um guarda de construção para que não possa voltar a acontecer. O QUE BROKE. `require-trusted-types-para 'script'' só é possível se uma política o nome `default` existe antes do primeiro DOM afundar fogos. O meu nunca correu. A política foi renderizada a partir de app/[locale]/layout.tsx, que parece um layout root e não é — existe um aplicativo/layout. tsx acima dele — e `next/script estratégia="antes Interativo"` só é honrado na verdadeira raiz. Próxima descida noutro lugar sem aviso. Então a página carregada, hidratação começou, e cada pia lançada: reacte-dom em `innerHTML`, carregador de pedaços de Turbopack em `script.src`, nove recusas TrustedScriptURL, em seguida, tela de erro do lado do cliente Next. Meu raciocínio tinha sido que nenhum pia poderia disparar antes da política porque todos os 78 Os dados de voo estão no corpo. Essa foi a pergunta errada. O quadro as próprias etiquetas `<script assync>` são içadas para <head> e executadas assim que download — eles não esperam pelo corpo, e eles são os que jogaram. Movê-la para a verdadeira base não a corrigiu. Medido, não assumido: app/[locale]/layout.tsx policy @ 12.678 first assync script @ 1.593 app/layout.tsx (root) policy @ 12.678 first assync script @ 1.730 Reagir guinchos `<script assync src>` acima de qualquer coisa que um layout renderize, então há Nenhuma posição na árvore que ganhe. As restantes opções são piores do que problema: reescrever o fluxo HTML no middleware coloca uma transformada por pedido em frente a cada página pré-renderizada e quebras de streaming, e um CSP nonce-suportando needs headers (), que deixa cair ~200 rotas fora de renderização estática e custa prefetching este site depende. Então, a Trusted Types é a nave mais importante. A directiva é implantado e as violações são visíveis; um cabeçalho somente para relatórios não pode bloquear nada. O item Farol permanece vermelho, e que é o estado honesto em vez de um política de passagem que o tornaria verde enquanto não protegia nada. O guarda é o verdadeiro entregador. **************************** falha a construção se a directiva for aplicada enquanto a política é emitida após o primeiro async framework script, e imprime os dois offsets e a correção. Continua. Pré-construir e no teste npm. Nada sobre esta falha é visível para tipos, fiapos ou a compilação — apenas a ordem de byte do HTML emitido — é por isso que ele precisava de verificar em vez de um comentário. Forçado e verificado contra o servidor autônomo real: CSP sem Diretiva do tipo confiável, COOP mesma origem, Referente-Política, Permissões-Política, Opções tipo X-Content. Auditou o recurso de página servida por recurso contra o política final: zero bloqueado, e 'insseguro-inline' abrange todos os 86 scripts inline.