Warum Header fehlen oder schwach bleiben
- Standard-Hosting-Konfigurationen liefern keinen davon mit. Die meisten Webserver und Plattformen fügen keine Security-Header hinzu, sofern Sie sie nicht explizit konfigurieren.
- Eine CSP wird einmal hinzugefügt und nie wieder angefasst. Fügt eine App neue Third-Party-Skripte, Embeds oder Schriften hinzu, blockiert eine vor einem Jahr geschriebene, statische CSP diese stillschweigend - oder schlimmer, jemand erweitert sie mit einem Wildcard, damit die Fehler aufhören, und macht die Richtlinie damit zunichte.
- HSTS wird ohne die Direktiven hinzugefügt, die es wirklich wirksam machen. Ein nackter
Strict-Transport-Security-Header mit kurzermax-ageund ohneincludeSubDomainsoderpreloadbietet weit schwächeren Schutz, als er vorgibt. - Veraltete, aus einem alten Tutorial kopierte Header bleiben bestehen, wie
X-XSS-Protection, das moderne Browser ignorieren oder das selbst ein Risiko darstellen kann.
So findet man das Problem
Das ist Scanverras tiefgehendste Security-Fähigkeit. Der Security-Scanner führt eine echte CSP-Direktivenanalyse durch - er prüft gezielt auf base-uri, form-action, object-src und frame-ancestors, zusätzlich erkennt er übermäßig breite Wildcard-Quellen - und eine vollständige HSTS-Tiefenprüfung, die max-age, includeSubDomains und preload abdeckt. Speziell für die Preload-Direktive ruft er live die hstspreload.org-API auf, um zu bestätigen, dass Ihre Domain tatsächlich in Chromes Preload-Liste steht, nicht nur behauptet, es zu sein. Er markiert außerdem veraltete Header wie X-XSS-Protection und ordnet jeden Befund einer CWE- und OWASP-Top-10-Referenz zu - eine fehlende HSTS-Header etwa wird CWE-319 und OWASP A05:2021 zugeordnet -, sodass sich Befunde direkt in Compliance-Dokumentation übersetzen lassen.
So behebt man es
1. HSTS mit dem vollständigen Satz an Direktiven hinzufügen
1Strict-Transport-Security: max-age=31536000; includeSubDomains; preloadNach dem Hinzufügen von preload reichen Sie Ihre Domain bei hstspreload.org ein - die Direktive allein meldet Sie nicht an, und Scanverras Live-Prüfung wird die Lücke weiterhin melden, bis die Einreichung tatsächlich akzeptiert wurde.
2. Eine Content-Security-Policy schreiben, die zu dem passt, was Ihre Website tatsächlich lädt
1Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self'; base-uri 'self'; form-action 'self'; object-src 'none'; frame-ancestors 'self'Fügen Sie script-src/style-src nur bei Bedarf spezifische vertrauenswürdige Origins hinzu - greifen Sie nie zu einem Wildcard (*) oder einer reinen Schema-Quelle (https:), nur um Konsolenfehler zum Schweigen zu bringen, denn das macht den Zweck der Richtlinie vollständig zunichte.
3. Die übrigen Standard-Header hinzufügen
1X-Content-Type-Options: nosniff
2X-Frame-Options: DENY
3Referrer-Policy: strict-origin-when-cross-originframe-ancestors in Ihrer CSP ist der moderne Ersatz für X-Frame-Options und flexibler - liefern Sie beide aus, denn ältere Browser respektieren nur den Legacy-Header.
4. Veraltete Header entfernen, statt sie stehen zu lassen
X-XSS-Protection ist veraltet, und OWASP empfiehlt ausdrücklich, ihn komplett zu entfernen, statt ihm irgendeinen Wert zu setzen - eine echte CSP ist der moderne Ersatz dafür, nicht dessen Begleiter.
Wie Scanverra dies erkennt
Scanverras Security-Scanner liest Ihre live Antwort-Header und führt eine echte direktivenbasierte Analyse durch, keine einfache Vorhandenseinsprüfung - CSP-Direktivenabdeckung und Wildcard-Erkennung, HSTS-Wertetiefe inklusive eines live hstspreload.org-Lookups sowie Erkennung veralteter Header, jeder Befund zugeordnet zu CWE-, OWASP- und, wo zutreffend, PCI-Referenzen.