CSP: Inline-Styles entfernt, Policy vom Build erzeugen lassen
Ein CSP-Header im Reverse-Proxy hat die Seite still zerlegt: Astro liefert seine Skripte als inline type=module aus, "script-src 'self'" blockiert die. Im Browser blieb data-reveal leer und das Mobilmenue reagierte nicht, ohne dass eine Fehlermeldung sichtbar war. Astro kennt die Hashes seiner eigenen Bundles, deshalb setzt jetzt der Build die Policy per <meta> (security.csp in astro.config.mjs). Damit die Policy auch fuer Styles streng bleiben kann, sind die letzten drei style-Attribute raus: sobald eine CSP Hashes fuer Styles enthaelt, ignorieren Browser 'unsafe-inline', inline gesetzte Farben waeren also ohnehin verloren. - Laserstrahlen im Hero: .beam-1 bis .beam-5 im <style>-Block - Genre-Akzentfarben: .accent-<name> statt berechnetem style-Attribut Geprueft im Browser hinter Caddy: Skripte laufen, Laser-Winkel und Akzentfarben stimmen, keine Verstoesse in der Konsole. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -16,6 +16,26 @@ export default defineConfig({
|
||||
|
||||
integrations: [sitemap()],
|
||||
|
||||
// Content-Security-Policy. Astro kennt seine eigenen gebuendelten Skripte und
|
||||
// Styles und traegt deren SHA-256-Hashes automatisch nach - deshalb wird die
|
||||
// Policy hier gesetzt und nicht im Reverse-Proxy: der weiss von den Hashes
|
||||
// nichts und wuerde die Inline-Module blockieren.
|
||||
security: {
|
||||
csp: {
|
||||
directives: [
|
||||
"default-src 'self'",
|
||||
"img-src 'self' data:",
|
||||
"font-src 'self'",
|
||||
"connect-src 'self'",
|
||||
"form-action 'self'",
|
||||
"base-uri 'self'",
|
||||
"object-src 'none'",
|
||||
],
|
||||
scriptDirective: { resources: ["'self'"] },
|
||||
styleDirective: { resources: ["'self'"] },
|
||||
},
|
||||
},
|
||||
|
||||
image: {
|
||||
// Bilder werden beim Build zu AVIF/WebP konvertiert.
|
||||
responsiveStyles: true,
|
||||
|
||||
Reference in New Issue
Block a user