Fornire un CSP, COOP e tipi fidati

Featurekamo-marketing
Spegnimento
20 agosto 2026 alle ore 03:59 UTC
Autore
Kamo
Impegno
b34d847

Aggiunge i tre intestazioni che il Trust and Safety audit ha chiesto, più Referrer-Policy e autorizzazioni-Policy. Ogni origine della politica è stata presa da che cosa il sito effettivamente carica piuttosto che indovinato — il pacchetto widget di chat su tema.kamocrm.com (che apre un WebSocket ai media. e chiama Api. e capcha.), lo script di analisi sull'analisi., la scala HLS dell'eroe, e la Il punto finale della sfida. Audited la pagina costruita contro il criterio finito risorsa per risorsa: zero bloccato. ON script-src 'unsafe-inline' — questo è un vero compromesso e vale la pena di affermare piuttosto che seppellire. La forma forte di un CSP è un nonzio per risposta con 'strict-dinamica', e non è disponibile qui: un nonce significa intestazioni di lettura() durante il rendering, che opta per il percorso di generazione statica. Questa applicazione ha ~200 percorsi prerenderati e il loro essere statico è portante di carico — un percorso dinamico con nessun limite di carico non prefetches nulla, così ogni clic di collegamento inizia freddo. Ecco. non è una fuga basata sull'hash, perché gli script in linea sono RSC di Next dati di volo, i cui contenuti differiscono per pagina e per costruzione. Quindi: questo CSP non ferma uno script inline iniettato. Ciò che fa è limitarsi ogni script esterno, fetch, frame, immagine e media carico a origini note, forbid plugins, pin the base URI così iniettato markup non può ri-root relativo URLs, e interrompere i messaggi dei moduli a terze parti. TYPES TRUSTED ha preso tre tentativi per rendere sicuro, e i fallimenti sono i parte interessante: 1. Una semplice inline <script> prima nella <head> del layout non è la prima. Reazione paranchi Il prossimo ` пscript async src>` tags sopra qualsiasi cosa il layout rende, così la politica è atterrata dopo dodici di loro — e gli script asinc eseguire nel momento in cui terminano il download. Il runtime di Turbopack è tra loro e lo fa `createElement("script")` quindi imposta `.src`, il lavandino esatto che lancia senza una politica. 2. `next/script` con strategia="primaInteractive" non lo ha spostato nemmeno; ancora dodici script avanti. 3. Ciò che rende sicuro è che nessun lavandino può sparare così presto. Tutti i 78 dati di volo le spinte sono nel corpo — prima a offset 193,072, con </head> a 11,940 — così React non può iniziare ad idratare fino a quando non è installato la politica, e non c'è un codice che tocca il lavandino in <head> prima di esso. Verificato sul costruito HTML piuttosto che assunto. Due cose si sarebbero rotte senza essere ingordate. Il widget *** è un Svelte costruisce e crea una politica chiamata `svelte-trusted-html`; un nome politico è un stringa runtime, quindi niente su di esso superfici in tipi, lint o la costruzione, e ometterlo dalla lista dei permessi avrebbe gettato e preso il contatto e demo si abbassa. E hls.js e il ***** entrambi costruiscono Web Workers da creareObjectURL, quindi la politica deve passare `blob:` prima del suo test di origine — a blob: l'URL non ha un'utile .origin e altrimenti avrebbe fallito, prendendo l'eroe bobina con esso. Il policy's createScriptURL è controllato contro kamocrm.com, che è rigorosamente più permissivo di script-src, quindi non può rifiutare qualcosa il CSP permette. creareHTML passa attraverso e NON igienica: un vero e proprio igienico-sanitario devono spedire sul percorso critico e potrebbe in silenzio schiacciare i blocchi JSON-LD e il markup del widget. Quella meta' e' un punto debole e un gancio per l'audit, non e' un problema. filtro — ed è dove indurire dopo. Cross-Origin-Resource-Policy è stato scritto e poi rimosso. Applicato attraverso `/:path*` copre le immagini Open Graph, che esistono specificamente per essere embedded da altre origini. frame-ancestors è 'self' per abbinare gli X-Frame-Options: SAMEORIGIN già essendo servito, piuttosto che stringere a 'none' e rompendo un incorporato nessuno ricordato. Verificato contro il vero server standalone, non solo la configurazione: intestazioni presenti su entrambi un percorso prerendered e un percorso ***, e il bene di lunga durata Cache-Control ancora intatto.

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