Skip to content

Secure Headers mit Caddy

Published: at 12:16

Die meisten Webseiten haben laut “securityheaders.com” ein “F” als Bewertung deren Header Parameter bekommen. Ich war einer von ihnen! Es ist allerdings einfach ein “A+” Ranking zu bekommen, dazu habe ich meine Caddy Konfiguration “Caddyfile” angepasst.

Die Einstellungen gelten nur, wenn Caddy als Webserver verwendet wird.

:80 {
    root * /srv
    file_server
    encode gzip zstd
    header * {
    	Feature-Policy "accelerometer 'none'; ambient-light-sensor 'none';
        Content-Security-Policy "default-src 'self'"
        Cross-Origin-Resource-Policy "same-origin"
		Strict-Transport-Security max-age=31536000;
        Server "36px.de"
        Cross-Origin-Embedder-Policy "require-corp"     
        Cross-Origin-Opener-Policy "same-origin-allow-popups"
        Cross-Origin-Resource-Policy "same-origin"
        Access-Control-Allow-Origin "https://36px.de"
        Referrer-Policy "strict-origin-when-cross-origin
        Permissions-Policy "accelerometer=(self), ambient-light-sen>
		X-Robots-Tag "none" always
		X-Content-Type-Options nosniff
		X-Frame-Options DENY
		X-Permitted-Cross-Domain-Policies "none"
		X-XSS-Protection "1; mode=block"
		X-Download-Options "noopen"
		Feature-Policy "accelerometer 'none'; ambient-light-sensor 'none'; autoplay 'self'; camera 'none'; encrypted-media 'none'; fullscreen 'self'; geolocation 'none'; gyroscope 'none'; magnetometer 'none'; microphone 'none'; midi 'none'; payment 'none'; picture-in-picture *; speaker 'none'; sync-xhr 'none'; usb 'none'; vr 'none'"
        }
}

Beim Astro Framework muss Content-Security-Policy "default-src 'self'" allerdings deaktiviert werden, weil sonst keine “inline scripts” Tags ausgeführt werden können. docs.astro.build/en/guides/troubleshooting/#refused-to-execute-inline-script

Mit diesen Parametern wird aus einem F ein A+.

Tools zum Testen: