CSP e COOP attuati; Tipi attendibili

Featurekamo-marketing
Spegnimento
20 agosto 2026 alle ore 04:25 UTC
Autore
Kamo
Impegno
00ee182

Re-inserisce le intestazioni di sicurezza dopo che ho preso il sito giù con loro, meno una direttiva che lo ha fatto, più una guardia di costruzione in modo che non possa accadere di nuovo. COSA BROKE. `require-trusted-types-for 'script'` è sopravvissibile solo se una politica chiamato `default` esiste prima che il primo DOM lavandino incendi. Il mio non e' mai scappato. The policy è stata resa da app/[locale]/layout.tsx, che sembra un layout root e non è — c'è un app/layout. tsx sopra di esso — e `next/script strategia="prima Interattivo"` è onorato solo nella vera radice. Il prossimo downgrades in altre parti senza preavviso. Così la pagina caricata, l'idratazione è iniziata, e ogni lavandino ha gettato: reagisce su `innerHTML`, caricatore a castello di Turbopack su `script.src`, nove rifiuta TrustedScriptURL, quindi la schermata di errore lato client di Next. Il mio ragionamento era stato che nessun lavandino poteva sparare prima della politica perché tutto 78 le spinte dei dati di volo sono nel corpo. Quella era la domanda sbagliata. Il quadro è i propri tag ` Пoscript async>` sono issati in <head> ed eseguire non appena essi download — non aspettano il corpo, e sono quelli che hanno lanciato. L'ho spostato al vero ritmo non l'ha aggiustato. Misurato, non assunto: app/[locale]/layout.tsx policy @ 12,678 primo script asincrona @ 1.593 app/layout.tsx (root) policy @ 12,678 primo script asincastro @ 1,730 Reagisci con i paranchi `±script async src>` sopra qualsiasi cosa un layout rende, quindi c'è nessuna posizione nell'albero che vince. Le rimanenti opzioni sono peggiori di quelle problema: riscrivere il flusso HTML in middleware mette una trasformazione per-request in davanti a ogni pagina prerenderata e rompe lo streaming, e un CSP non-portante bisogno di intestazioni(), che scende ~200 percorsi fuori rendering statico e costa il prefetching questo sito dipende da. Quindi le navi Trusted Types sono come... La direttiva è distribuita e le violazioni sono visibili; un intestazione solo rapporto non può bloccare nulla. L'oggetto Lighthouse rimane rosso, e questo è lo stato onesto piuttosto che un passare attraverso la politica che lo renderebbe verde mentre non proteggeva nulla. La guardia è la vera e propria consegnabile. E' il momento giusto. fallisce la costruzione se la direttiva è applicata mentre la politica è emessa dopo che la direttiva è stata approvata primo script quadro asincastro, e stampa i due offset e la correzione. Si accende prebuild e in npm test. Nulla di questo fallimento è visibile a tipi, lint o la costruzione — solo l'ordine byte del HTML emesso — è per questo che aveva bisogno di un controllare piuttosto che un commento. Rinforzato e verificato contro il server standalone reale: CSP senza direttiva sui tipi di fiducia, COOP Same-origin, Referrer-Policy, Permissions-Policy, X-Content-Type-Options. Audited la risorsa della pagina servita per risorsa contro policy finita: zero bloccato, e 'inline non sicuro' copre tutti gli 86 script in linea.

Tutte le modifiche

Come quello che vedi la spedizione?

Ognuno di questi aggiornamenti atterra automaticamente nello spazio di lavoro. Inizia gratis e guardalo crescere settimana dopo settimana.

Inizia gratis per sempreVisualizza il prezzo