import type { Handle } from '@sveltejs/kit'; /** * Server-Hook für Security-Headers auf jeder ausgelieferten Response. * * Bewusst minimalistisch: nur die well-known Header, die ohne * Browser-Verhaltens-Test sicher sind. **CSP fehlt absichtlich** — * eine richtige Content-Security-Policy braucht App-Inventur * (inline-styles, externe Theme-Assets, Markdown-Renderer) und * sollte separat mit Live-Test eingeführt werden. * * Cloudflare-Tunnel-Transform-Rules dürfen das gerne nochmal * obendrauf setzen — die hier sind die Defense-Tiefe-Schicht für * den Fall, dass die Cloudflare-Schiene aus dem Pfad fällt. */ export const handle: Handle = async ({ event, resolve }) => { const response = await resolve(event); response.headers.set('X-Frame-Options', 'DENY'); response.headers.set('X-Content-Type-Options', 'nosniff'); response.headers.set('Referrer-Policy', 'strict-origin-when-cross-origin'); if (process.env.NODE_ENV === 'production') { response.headers.set('Strict-Transport-Security', 'max-age=15552000; includeSubDomains'); } return response; };