Ripristinare attività a tema — CSP ha derivato l'host sbagliato e SVG è stato disabilitato

Fixkamo-internal
Spegnimento
3 agosto 2026 alle ore 03:56 UTC
Autore
kamo
Impegno
aa7c32d

Avatars, logo e sfondi di org hanno smesso di caricare per ogni inquilino. Due regressioni che ho introdotto in 36ad904b, entrambi vivono per ore. 1. La politica img-src per richiesta ha derivato il dominio inquilino da `request.nextUrl.hostname`. All'interno del baccello che è 127.0.0.1, quindi prendendo il le ultime due etichette hanno prodotto l'apice "0.0" e l'intestazione emessa era: img-src «self» dati: blob: https://theme.0.0 https://*.0.0 Ogni tema reale. L'ospite deve venire dalle intestazioni inoltrate — le richieste arrivano attraverso Traefik e il gateway, così il nome host esterno sopravvive solo lì. Il resto di questo codebase già sapeva che; il proxy API inoltra X-Forwarded-Host esplicitamente così backends può costruire URL tema da esso. L'errore più profondo stava fallendo CLOSED su un valore che non poteva parse. Politica costruito da un apice assurdo è indistinguibile da uno stretto al server, quindi niente sembrava sbagliato dall'esterno — appena bloccato silenziosamente immagini ovunque. inquilinoApex() ora restituisce null per tutto ciò che non è un dominio registrabile (IP literal, etichetta nuda, localhost, TLD numerico) e chiamante omette completamente l'intestazione. Un intestazione mancante è il comportamento precedente; un intestazione sbagliata è un'estrazione. 2. pericolosamenteAllowSVG: falso bloccato SVG attraverso l'ottimizzazione per tutte le fonti, non solo quelli remoti — e il logo org/software e le icone del fornitore sotto /logo sono SVG. Re-enabled, ed è molto più stretto ora che quando è stato il primo set: remotePatterns è vuoto, quindi l'ottimizzatore non può essere rivolto a uno straniero host a tutti, e le immagini esterne passano attraverso /api/images/proxy, che convalida tipo di contenuto e serve con `default-src 'none'; sandbox` plus nosniff. I test coprono la derivazione contro l'ingresso esatto che ha causato questo, il domini white-label, precedente host inoltrato, valori forwarded-joined, porte, e ogni forma che deve cedere nulla.

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