Security-Header: Was jeder einzelne bewirkt und wie Sie ihn einrichten
Eine Handvoll HTTP-Response-Header schützt Ihre Besucher vor Cross-Site-Scripting, Clickjacking und Downgrade-Angriffen. Was jeder Header bewirkt, welche sicheren Startwerte es gibt, wie unser kostenloser Security-Header-Checker Ihre Website prüft und wie Sie jedes gemeldete Problem beheben – auf nginx, Apache und Cloudflare.
Searvia · 24.10.2026 · Lesezeit: 12 Min.

Kurz gesagt: Security-Header sind Anweisungen, die Ihr Server mit jeder Seite mitschickt. Sie sorgen dafür, dass Browser immer HTTPS nutzen, Skripte nur aus freigegebenen Quellen ausführen, das Einbetten Ihrer Seiten durch andere Websites verweigern, Dateitypen nie erraten und keine vollständigen URLs im Referer-Header preisgeben. Beginnen Sie mit HTTPS überall und einem gültigen Zertifikat, und ergänzen Sie dann
Strict-Transport-Security,X-Content-Type-Options: nosniff,Referrer-Policy: strict-origin-when-cross-originsowieframe-ancestorsoderX-Frame-Options. Führen SieContent-Security-Policyzuerst im Report-Only-Modus ein. Alle Header werden in der Server- oder CDN-Konfiguration gesetzt.
Security-Header sind eine günstige Versicherung. Die meisten brauchen nur eine Zeile Serverkonfiguration, kosten keine Performance und schließen ganze Angriffsklassen aus: ein eingeschleustes Skript, das Sessions stiehlt, einen unsichtbaren Frame, der Nutzer zum Klicken verleitet, oder ein Café-WLAN, das Besucher auf unverschlüsseltes HTTP herunterstuft. Außerdem gehören sie zu den ersten Dingen, die Sicherheitsscanner, Unternehmenskunden und Sicherheitsfragebögen prüfen.
Dieser Leitfaden erklärt jeden Header und die Grundlagen der Verbindung drumherum, nennt sichere Startwerte, zeigt, wie unser kostenloser Security-Header-Checker Ihre Website testet, und führt Sie durch die Behebung jedes gemeldeten Problems.
Zuerst die Grundlagen: HTTPS, Zertifikat und Mixed Content
Header setzen auf einer verschlüsselten Verbindung auf; ohne sie helfen sie nicht. Drei Grundlagen kommen zuerst:
- HTTPS auf jeder Seite, mit Weiterleitung von HTTP. Seit Chrome 68 im Juli 2018 kennzeichnet Chrome jede HTTP-Seite als „nicht sicher“ (Chromium Blog), und Googles Leitfaden zur Seitenerfahrung fragt: „Are your pages served in a secure fashion?“
- Ein gültiges Zertifikat, das jeden genutzten Hostnamen abdeckt, einschließlich
wwwund der Domain ohne Subdomain. Ein abgelaufenes oder nicht passendes Zertifikat löst eine ganzseitige Warnung aus. - Kein Mixed Content. Eine sichere Seite, die Dateien über
http://lädt, ist nicht vollständig sicher. Laut MDN stellen Browser Bilder, Audio und Video automatisch auf HTTPS um und blockieren Skripte, Stylesheets, iframes und andere „blockierbare“ Inhalte komplett, wodurch die Seite kaputtgehen kann.
Die Header im Einzelnen
| Header | Schützt vor | Sicherer Startwert |
|---|---|---|
Strict-Transport-Security | Downgrade auf HTTP, Cookie-Diebstahl in offenen Netzwerken | max-age=31536000; includeSubDomains (nach dem Testen) |
Content-Security-Policy | Cross-Site-Scripting (XSS), eingeschleusten Inhalten, Clickjacking über frame-ancestors | Mit Content-Security-Policy-Report-Only beginnen |
X-Frame-Options oder CSP frame-ancestors | Clickjacking | SAMEORIGIN oder frame-ancestors 'self' |
X-Content-Type-Options | MIME-Sniffing: Dateien werden als Skripte oder Styles ausgeführt | nosniff |
Referrer-Policy | Weitergabe vollständiger URLs an andere Websites | strict-origin-when-cross-origin |
Permissions-Policy | Eingebettete Skripte, die Kamera, Mikrofon oder Standort nutzen | camera=(), microphone=(), geolocation=() |
Strict-Transport-Security (HSTS)
HSTS weist den Browser an, für Ihren Host eine festgelegte Anzahl von Sekunden lang HTTPS zu verwenden, selbst wenn jemand http:// eintippt oder einem alten Link folgt. MDN nennt drei Punkte, die Sie kennen sollten:
- Browser ignorieren den Header, wenn er über reines HTTP ankommt. Senden Sie ihn in HTTPS-Antworten; Ihre HTTP-zu-HTTPS-Weiterleitung braucht ihn nicht.
- Er wirkt erst nach dem ersten sicheren Besuch. Preloading schließt diese Lücke.
includeSubDomainswendet die Richtlinie auf jede Subdomain an, prüfen Sie daher vorher alle.
Die HSTS-Preload-Liste verankert Ihre Domain fest in den Browsern. Sie verlangt ein gültiges Zertifikat, eine HTTP-zu-HTTPS-Weiterleitung auf demselben Host, alle Subdomains über HTTPS und einen Header mit max-age von mindestens 31536000, includeSubDomains und preload. Sie warnt außerdem: „inclusion in the preload list cannot easily be undone“: Eine Entfernung braucht Monate, bis sie bei den Nutzern ankommt. Nutzen Sie Preload nur, wenn Sie sich sicher sind.
Content-Security-Policy (CSP)
CSP ist der stärkste Header und zugleich der schwierigste im Einsatz. Er legt fest, von wo Skripte, Styles, Bilder und andere Ressourcen geladen werden dürfen, und der Browser verweigert alles andere. MDN bezeichnet ihn hauptsächlich als „a defense against cross-site scripting (XSS) attacks.“
Die empfohlene moderne Form ist eine strikte CSP auf Basis von Nonces oder Hashes statt langer Domain-Allowlists:
Content-Security-Policy: script-src 'nonce-{RANDOM}'; object-src 'none'; base-uri 'none'
Der Nonce muss zufällig sein und bei jeder Antwort anders. MDN warnt, dass 'unsafe-inline' „defeats much of the purpose of having a CSP.“
Weil eine strikte Richtlinie Analytics-Tags, Chat-Widgets und Inline-Skripte kaputtmachen kann, führen Sie sie in zwei Schritten ein: Senden Sie Content-Security-Policy-Report-Only mit einem Reporting-Endpunkt, beheben Sie, was die Reports zeigen, und wechseln Sie dann auf den erzwingenden Header. In der CSP steckt auch upgrade-insecure-requests (ein Sicherheitsnetz gegen Mixed Content, kein Ersatz für HSTS), und dort steuert frame-ancestors das Einbetten in Frames.
X-Frame-Options und frame-ancestors
Beim Clickjacking wird Ihre Seite in einem unsichtbaren Frame auf einer anderen Website geladen, und Nutzer werden dazu gebracht, Ihre Schaltflächen anzuklicken. Zwei Wege, das zu verhindern:
X-Frame-Options: SAMEORIGIN(oderDENY), der ältere Header.ALLOW-FROMist veraltet und führt dazu, dass moderne Browser den Header ignorieren.Content-Security-Policy: frame-ancestors 'self', die flexiblere Option, die auch bestimmte Partner-Origins auflisten kann.
Beides funktioniert nicht in einem <meta>-Tag. MDN hält fest, dass X-Frame-Options in einem meta-Element „has no effect“ hat und dass frame-ancestors „is not supported in the <meta> element.“ Beachten Sie außerdem, dass frame-ancestors nicht auf default-src zurückfällt: Eine Richtlinie default-src 'none' erlaubt weiterhin jedem, die Seite einzubetten.
X-Content-Type-Options
nosniff weist Browser an, Ihrem Content-Type-Header zu vertrauen. Damit wird eine als Skript oder Stylesheet angeforderte Antwort blockiert, wenn ihr MIME-Typ nicht passt. So läuft eine als Bild getarnte hochgeladene Datei nicht als Skript. Es gibt nur einen gültigen Wert:
X-Content-Type-Options: nosniff
Stellen Sie sicher, dass Ihr Server korrekte Content-Types sendet, besonders für JavaScript und CSS, bevor Sie den Header hinzufügen.
Referrer-Policy
Wenn ein Besucher einem Link zu einer anderen Website folgt, sendet der Browser einen Referer-Header. Moderne Browser verwenden bereits standardmäßig strict-origin-when-cross-origin: Dabei wird websiteübergreifend nur der Origin (https://example.com/) gesendet, und beim Wechsel von HTTPS zu HTTP nichts (MDN). OWASP empfiehlt dennoch, ihn explizit zu setzen, „rather than relying on browser defaults.“ Vermeiden Sie unsafe-url, das überall vollständige URLs sendet, einschließlich darin enthaltener Tokens.
Permissions-Policy und die Header, die Sie entfernen sollten
Permissions-Policy schaltet Browserfunktionen ab, die Sie nicht nutzen, sodass ein eingebettetes Skript nicht nach Kamera oder Standort fragen kann. MDN stuft ihn als experimentell mit eingeschränkter Browserunterstützung ein, betrachten Sie ihn daher als zusätzliche Schicht. Unser kostenloser Checker prüft ihn nicht; der vollständige Security-Scan tut es.
Zwei Header sollten Sie entfernen statt hinzufügen: OWASP rät, X-XSS-Protection nicht zu setzen (oder auf 0 zu setzen), weil die alten Filter, die er steuerte, Schwachstellen erzeugen konnten, und bezeichnet Expect-CT als veraltet. Außerdem wird empfohlen, X-Powered-By zu entfernen und Server einen nichtssagenden Wert zu geben.
So funktioniert der Security-Header-Checker von Searvia
Der kostenlose Security-Header-Checker nutzt dieselbe Engine wie unser Website-SEO-Checker und stellt fünf Prüfungen an die Spitze. Er sendet gewöhnliche Anfragen, wie sie jeder Besucher stellen könnte; nichts wird angegriffen oder ausgespäht.
| Prüfung | So wird getestet | Bestanden | Warnung | Fehler | Priorität |
|---|---|---|---|---|---|
| HTTPS | Lädt die Seite über HTTPS und fordert dann http:// an, ohne Weiterleitungen zu folgen | HTTPS funktioniert und HTTP leitet auf eine https://-Adresse weiter (antwortet HTTP gar nicht, erhalten Sie stattdessen einen Hinweis) | HTTPS funktioniert nicht oder HTTP leitet nicht weiter | Hoch | |
| TLS-Zertifikat | Liest das Zertifikat des finalen Hosts | Gültig, passt zum Host, mindestens 14 Tage Restlaufzeit | Weniger als 14 Tage Restlaufzeit | Abgelaufen oder deckt den Host nicht ab | Hoch |
| HSTS | Liest max-age aus der Antwort der Seite | 15.552.000 Sekunden (etwa 6 Monate) oder mehr | Fehlt oder kürzer | Niedrig | |
| Mixed Content | Findet http://-URLs in Skripten, iframes, Stylesheets, Bildern, Video, Audio und Quellen auf einer HTTPS-Seite | Keine | Nur Bilder oder Medien | Skripte, iframes oder Stylesheets | Mittel |
| Security-Header | Sucht nach drei wichtigen Response-Headern und zeigt Referrer-Policy an | Alle drei vorhanden | Einer fehlt | Niedrig |
Gezählt werden Content-Security-Policy, X-Frame-Options (oder ein CSP-Header mit frame-ancestors) und X-Content-Type-Options. Referrer-Policy wird ebenfalls aufgeführt, ein Fehlen wird aber nicht negativ gewertet: Browser verwenden bereits standardmäßig strict-origin-when-cross-origin, und die Tabelle weist darauf hin. Die Ergebnistabelle zeigt den Wert jedes Headers, lange Richtlinien werden gekürzt.
Einige Grenzen, die Sie kennen sollten:
- Geprüft wird das Vorhandensein, nicht die Qualität. Eine CSP voller
'unsafe-inline'besteht hier; der vollständige Security-Scan bewertet das. - Gelesen werden die HTTP-Response-Header. Eine CSP in einem
<meta>-Tag zählt, mit einem Hinweis:frame-ancestorsund Reporting funktionieren dort nicht, sie kann alsoX-Frame-Optionsnicht ersetzen. EinContent-Security-Policy-Report-Only-Header zählt nicht als erzwungene Richtlinie. - Geprüft wird eine Seite, nämlich die, die Sie eingeben (die Startseite, wenn Sie nur eine Domain eingeben). Andere Pfade, etwa ein Admin-Bereich oder eine API, können andere Header senden.
- Mixed Content wird nur im HTML gefunden: absolute
http://-URLs in Tags. Dateien, die später von CSS oder JavaScript angefordert werden, sieht der Checker nicht.
So lesen Sie die Ergebnisse
Arbeiten Sie sich nach Priorität von oben nach unten vor. Eine fehlgeschlagene HTTPS- oder Zertifikatsprüfung ist dringend: Besucher sehen Browserwarnungen oder surfen unverschlüsselt. Aktiver Mixed Content (Skripte, iframes, Stylesheets) kommt als Nächstes, weil Browser diese Dateien blockieren und die Seite kaputtgehen kann. HSTS und die Security-Header haben im Score niedrige Priorität, lassen sich aber am schnellsten beheben, bündeln Sie sie daher in einer einzigen Konfigurationsänderung.
So beheben Sie jedes vom Checker gemeldete Problem
„The site does not work over HTTPS.“ / „HTTP does not redirect to HTTPS.“
- Installieren Sie ein Zertifikat. Let's Encrypt ist kostenlos, und die meisten Hoster bieten es per Klick an.
- Richten Sie eine permanente Weiterleitung von jeder
http://-URL auf dieselbehttps://-URL ein.
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
In Cloudflare aktivieren Sie „Always Use HTTPS“ unter SSL/TLS › Edge Certificates.
„The certificate expired N days ago.“ / „The certificate does not cover this domain.“
- Erneuern Sie es sofort und aktivieren Sie die automatische Erneuerung (Certbot sowie die meisten Hoster und CDNs tun das standardmäßig).
- Stellen Sie sicher, dass das Zertifikat jeden ausgelieferten Hostnamen enthält, mindestens die Domain ohne Subdomain und
www. - Schlägt die Erneuerung unbemerkt fehl, sind die üblichen Ursachen ein geänderter DNS-Eintrag, ein blockierter Validierungspfad oder ein abgelaufenes API-Token für die DNS-Validierung.
Eine Warnung mit weniger als 14 Tagen Restlaufzeit bedeutet meist, dass die automatische Erneuerung nicht funktioniert; gehen Sie dem nach, statt jedes Mal von Hand zu erneuern.
„HSTS is not set.“ / „HSTS is on but shorter than 6 months.“
Führen Sie HSTS in Stufen ein, damit eine vergessene Subdomain, die nur HTTP kann, nicht ausgesperrt wird:
- Stellen Sie sicher, dass die Hauptseite und jede Subdomain über HTTPS funktionieren.
- Senden Sie
Strict-Transport-Security: max-age=300einen Tag lang, dann eine Woche (604800), dann einen Monat. - Wechseln Sie auf
max-age=31536000; includeSubDomains. - Erst danach ziehen Sie
preloadin Betracht und reichen die Domain bei hstspreload.org ein.
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
„N files load over plain HTTP.“
- Öffnen Sie die Liste der URLs im Report.
- Ändern Sie jede auf
https://oder bei eigenen Dateien auf einen relativen Pfad. Prüfen Sie bei Dateien von Drittanbietern, ob der Anbieter HTTPS ausliefert; wenn nicht, wechseln Sie den Anbieter. - Durchsuchen Sie Datenbank und Theme nach fest eincodierten
http://-Links; nach einer Umstellung auf HTTPS sind alte Beitragsinhalte die übliche Quelle. - Als Sicherheitsnetz fügen Sie
Content-Security-Policy: upgrade-insecure-requestshinzu.
„N key security headers are missing.“
Fügen Sie die fehlenden in einer Änderung hinzu. Für nginx:
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Content-Security-Policy-Report-Only "default-src 'self'; frame-ancestors 'self'; report-to csp" always;
Für Apache:
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-Content-Type-Options "nosniff"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
In Cloudflare fügen Sie Response-Header mit einer Transform Rule hinzu. Bei Netlify nutzen Sie eine _headers-Datei, bei Vercel die Einstellung headers in vercel.json. Beachten Sie in nginx, dass add_header in einem location-Block die auf Server-Ebene gesetzten Header ersetzt; wiederholen Sie sie also oder nutzen Sie eine Include-Datei.
Für CSP ist die Report-Only-Zeile oben ein Ausgangspunkt, keine fertige Richtlinie. Richten Sie report-to auf einen Reporting-Endpunkt, den Sie kontrollieren, werten Sie die Verstöße ein bis zwei Wochen lang aus, passen Sie die Richtlinie an und benennen Sie den Header dann in Content-Security-Policy um. Sobald sie erzwungen wird, besteht die CSP-Prüfung.
So prüfen Sie Header selbst
Der Checker zeigt, was die geprüfte Seite sendet, aber andere Seiten, Dateien und Fehlerantworten können abweichen. Zwei schnelle Möglichkeiten:
- Browser-DevTools. Öffnen Sie das Netzwerk-Panel, laden Sie die Seite neu, klicken Sie die erste Anfrage an und lesen Sie den Abschnitt Response Headers.
- Die Kommandozeile.
curl -sI https://www.example.com/gibt nur die Response-Header aus. Führen Sie es für die Startseite, eine tiefer liegende Seite, ein PDF, eine 404-Seite und Ihre Login-Seite aus.
Eine häufige Überraschung sind Header, die auf normalen Seiten erscheinen, nicht aber bei Fehlern oder Weiterleitungen. In nginx gilt add_header nur für erfolgreiche Antworten und Weiterleitungen, es sei denn, Sie ergänzen den Parameter always; deshalb enthält jedes Beispiel oben ihn. Eine weitere sind CDNs oder Hoster, die Header hinzufügen oder entfernen. Prüfen Sie also die Antwort, die die Öffentlichkeit sieht, nicht nur Ihre Serverkonfigurationsdatei.
Bedenken Sie, dass jeder Header etwas anderes schützt. Eine perfekte CSP nützt nichts gegen ein abgelaufenes Zertifikat, und HSTS nützt nichts gegen ein eingeschleustes Skript. Ziel ist das gesamte Set, in sinnvoller Reihenfolge hinzugefügt.
Praxisbeispiel (hypothetisch)
Das folgende Beispiel ist hypothetisch und enthält keine echten Daten. Halden Legal, eine erfundene Anwaltskanzlei, erhält von einem Firmenkunden einen Sicherheitsfragebogen zu den Headern ihrer Website. Der Security-Header-Checker meldet:
- HTTPS, TLS-Zertifikat: bestanden, noch 61 Tage.
- HSTS: Warnung,
max-age=86400(ein Tag). - Mixed Content: Warnung, 2 Bilder werden über HTTP geladen (ein Partner-Badge und ein altes Teamfoto).
- Security-Header: 2 wichtige Header fehlen; nur
X-Content-Type-Optionsist gesetzt, undReferrer-Policyzeigt den Browser-Standard.
Die Korrekturen dauern einen Nachmittag. Die beiden Bild-URLs werden auf HTTPS geändert. Nachdem bestätigt ist, dass die Subdomain des Mandantenportals über HTTPS funktioniert, wird HSTS in zwei Schritten über eine Woche auf max-age=31536000; includeSubDomains angehoben. X-Frame-Options: SAMEORIGIN und Referrer-Policy: strict-origin-when-cross-origin werden auf dem Server ergänzt. Eine Report-Only-CSP läuft zehn Tage und deckt ein Inline-Skript des Buchungs-Widgets auf, das in eine Datei ausgelagert und über seinen Origin freigegeben wird, bevor die Richtlinie erzwungen wird. Der letzte Durchlauf besteht alle Prüfungen, und die Kanzlei beantwortet den Fragebogen mit einem Link zum geteilten Report.
Eine Checkliste für eine Stunde
- Führen Sie den Security-Header-Checker aus und beheben Sie zuerst HTTPS- und Zertifikatsfehler.
- Entfernen Sie den im Report aufgeführten Mixed Content.
- Fügen Sie
X-Content-Type-Options,Referrer-PolicyundX-Frame-Optionsoderframe-ancestorshinzu. - Steigern Sie HSTS stufenweise auf ein Jahr, sobald jede Subdomain über HTTPS funktioniert.
- Starten Sie eine Report-Only-CSP und planen Sie eine Auswertung ein.
- Entfernen Sie
X-Powered-By, Versionsnummern inServerund jedesX-XSS-Protectionaußer0.
Wie Searvia die Sicherheit Ihrer Website im Blick behält
Der kostenlose Security-Header-Checker prüft Ihre Startseite oder jede beliebige Seite in etwa 20 Sekunden ohne Anmeldung, und derselbe Report enthält 33 weitere Prüfungen zu Suchdarstellung, Crawling, Geschwindigkeit, Mobilgeräten und E-Mail-Authentifizierung.
Ein kostenloses Searvia-Konto ergänzt einen wöchentlichen Security-Scan: passive Prüfungen von Verschlüsselung, Browser-Schutzmaßnahmen, Cookie-Flags, Softwareversionen und Schutz vor E-Mail-Spoofing, jeweils mit Anfrage und Antwort als Beleg für jeden Befund. Er bewertet Ihre CSP (zum Beispiel 'unsafe-inline' ohne Nonces oder Hashes), prüft Permissions-Policy und sucht, nachdem Sie die Inhaberschaft bestätigt haben, auch nach offen zugänglichen .env- und .git-Dateien, öffentlichen Backups, Debug-Seiten und unsicherem CORS. Write the remediation plan with AI macht aus den Befunden Konfiguration zum Einfügen (5 Credits). In bezahlten Tarifen ab Starter prüft das Uptime-Monitoring außerdem täglich Ihr TLS-Zertifikat und warnt Sie vor dem Ablauf.
Häufig gestellte Fragen
- Was sind Security-Header?
- Security-Header sind HTTP-Response-Header, die dem Browser sagen, wie er Ihre Seite sicherer behandeln soll: immer HTTPS nutzen (Strict-Transport-Security), Skripte nur aus freigegebenen Quellen ausführen (Content-Security-Policy), das Einbetten durch andere Websites verbieten (X-Frame-Options oder frame-ancestors), Dateitypen nicht erraten (X-Content-Type-Options) und begrenzen, was im Referer-Header gesendet wird (Referrer-Policy). Sie werden auf dem Server oder im CDN gesetzt, nicht in den Inhalten Ihrer Seite.
- Beeinflussen Security-Header die SEO?
- Nicht als einzelne Rankingfaktoren. Googles Leitfaden zur Seitenerfahrung fragt, ob Seiten sicher ausgeliefert werden, HTTPS ist also wichtig, und defektes HTTPS oder Mixed Content schaden Besuchern und Vertrauen. Header wie Content-Security-Policy und X-Frame-Options schützen Nutzer vor Angriffen; ihr Wert liegt in der Sicherheit, nicht in Rankings.
- Was ist ein guter HSTS-max-age-Wert?
- Ein Jahr (max-age=31536000) ist eine gängige Wahl und das Minimum für die HSTS-Preload-Liste, die zusätzlich includeSubDomains und preload verlangt. Beginnen Sie niedriger, etwa mit ein paar Minuten, dann einer Woche, dann einem Monat, während Sie bestätigen, dass jede Subdomain über HTTPS funktioniert, denn Browser verweigern für den gesamten Zeitraum reines HTTP. Unser Checker lässt Werte ab etwa sechs Monaten bestehen.
- Sollte ich X-Frame-Options oder frame-ancestors verwenden?
- Beides ist in Ordnung; frame-ancestors in der Content-Security-Policy ist die flexiblere moderne Option, X-Frame-Options der ältere Fallback. Verwenden Sie frame-ancestors 'self' oder X-Frame-Options: SAMEORIGIN, wenn Ihre Seiten nie anderswo eingebettet werden müssen. Keines von beiden funktioniert in einem Meta-Tag; sie müssen als HTTP-Header gesendet werden.
- Ist X-XSS-Protection noch nötig?
- Nein. OWASP empfiehlt, ihn nicht zu setzen oder ausdrücklich mit X-XSS-Protection: 0 abzuschalten, weil die alten XSS-Filter der Browser, die er steuerte, Schwachstellen erzeugen konnten. Verwenden Sie stattdessen eine Content-Security-Policy, die Inline-Skripte blockiert.
Quellen
- HTTP Security Response Headers Cheat Sheet – OWASP
- Strict-Transport-Security – MDN Web Docs
- HSTS Preload List Submission – hstspreload.org
- Content Security Policy (CSP) – MDN Web Docs
- CSP: frame-ancestors – MDN Web Docs
- X-Frame-Options – MDN Web Docs
- X-Content-Type-Options – MDN Web Docs
- Referrer-Policy – MDN Web Docs
- Permissions-Policy – MDN Web Docs
- Mixed content – MDN Web Docs
- Understanding page experience in Google Search results – Google Search Central
- Module ngx_http_headers_module – nginx documentation
- A secure web is here to stay – Chromium Blog