Ratgeber Konto erstellen 🇬🇧 🇩🇪

Sicherheits-Ratgeber

HTTP-Security-Header, verständlich erklärt

Response-Header gehören zu den günstigsten Maßnahmen mit der größten Wirkung, um die Besucher Ihrer Website zu schützen. Dieser Ratgeber geht die sechs wichtigsten Header durch: was sie bewirken, warum sie sich lohnen und wie Sie sie in nginx setzen.

Meine Header prüfen Direkt zu den Headern

01 Warum sie wichtig sind

Kleine Header, große Wirkung

Ein Browser glaubt zunächst alles, was ihm Ihr Server mitteilt. Security-Header sind kurze Anweisungen in jeder HTTP-Antwort, die festlegen, wie er sich verhalten soll: welchen Verbindungen er trauen darf, welche Inhalte er laden darf und wie viele Informationen er nach außen gibt. Sind sie sauber gesetzt, laufen ganze Angriffsklassen ins Leere - vom erzwungenen Protokoll-Downgrade über Clickjacking bis zu Cross-Site-Scripting. Fehlen sie, greifen die großzügigen Voreinstellungen des Browsers.

02 Die Header

Sechs Header, die Sie heute setzen sollten

Strict-Transport-Security HSTS

Was er bewirkt. Weist den Browser an, Ihre Website ausschließlich über HTTPS aufzurufen, und diese Entscheidung für die angegebene max-age zu merken. Ab dem zweiten Besuch stellt der Browser jede Anfrage selbst auf HTTPS um, bevor überhaupt Daten das Gerät verlassen.

Warum er wichtig ist. Ohne HSTS kann ein Angreifer im Netzwerk die erste unverschlüsselte Anfrage abfangen und die Verbindung herunterstufen. HSTS schließt dieses Zeitfenster und macht die verschlüsselte Übertragung verbindlich.

add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;

Content-Security-Policy CSP

Was er bewirkt. Legt eine Positivliste der Quellen fest, aus denen eine Seite Skripte, Stylesheets, Bilder und andere Ressourcen laden darf, und kann Inline-Skripte vollständig verbieten.

Warum er wichtig ist. Das ist der wirksamste Schutz gegen Cross-Site-Scripting (XSS). Selbst wenn ein Angreifer ein Script-Tag einschleust, führt der Browser es nur aus, wenn die Richtlinie dessen Quelle erlaubt. Beginnen Sie im Report-Only-Modus und schalten Sie danach auf erzwingend um.

add_header Content-Security-Policy "default-src 'self'; script-src 'self'; object-src 'none'; base-uri 'self'; frame-ancestors 'none'" always;

X-Frame-Options

Was er bewirkt. Steuert, ob Ihre Seiten auf fremden Websites in einem Frame oder Iframe eingebettet werden dürfen. DENY verbietet jedes Einbetten, SAMEORIGIN erlaubt es nur der eigenen Domain.

Warum er wichtig ist. Der Header verhindert Clickjacking, bei dem ein Angreifer Ihre Seite unsichtbar über seine eigene legt, um Klicks abzufangen. Moderne Browser werten zusätzlich die CSP-Direktive frame-ancestors aus, dieser Header deckt jedoch auch ältere Clients ab.

add_header X-Frame-Options "DENY" always;

X-Content-Type-Options

Was er bewirkt. Mit dem Wert nosniff weisen Sie den Browser an, dem angegebenen Content-Type zu vertrauen und niemals einen anderen zu erraten (MIME-Sniffing).

Warum er wichtig ist. MIME-Sniffing kann aus einem harmlos wirkenden Upload ein ausführbares Skript machen. Ein einziger, unkritischer Wert schaltet eine ganze Kategorie solcher Verwechslungsangriffe ab.

add_header X-Content-Type-Options "nosniff" always;

Referrer-Policy

Was er bewirkt. Bestimmt, wie viel der aufrufenden URL übermittelt wird, wenn ein Besucher Ihre Website über einen Link verlässt oder eine Ressource von Dritten geladen wird.

Warum er wichtig ist. Vollständige Referrer geben Pfade, Tokens oder Suchbegriffe an fremde Server weiter. Eine strenge Richtlinie übermittelt gerade genug für Ihre Web-Analyse und hält sensible URLs zurück.

add_header Referrer-Policy "strict-origin-when-cross-origin" always;

Permissions-Policy

Was er bewirkt. Erlaubt es, mächtige Browser-Funktionen wie Kamera, Mikrofon und Standortabfrage für Ihre Website und alle eingebetteten Inhalte abzuschalten.

Warum er wichtig ist. Wenn Ihre Website die Kamera ohnehin nie braucht, kann auch ein kompromittierter oder bösartiger eingebetteter Inhalt nicht danach fragen. Sie reduzieren die Angriffsfläche auf die Funktionen, die Sie tatsächlich nutzen.

add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;

03 Alles zusammen

Eine solide Grundkonfiguration

Tragen Sie die Direktiven in den server-Block ein, der Ihre Website ausliefert, laden Sie nginx neu und testen Sie. Führen Sie Content-Security-Policy behutsam ein: erst Content-Security-Policy-Report-Only setzen, beobachten, was blockiert worden wäre, und anschließend auf den erzwingenden Header wechseln, sobald die Richtlinie zu Ihrer Website passt.

server { add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always; add_header Content-Security-Policy "default-src 'self'; object-src 'none'; base-uri 'self'; frame-ancestors 'none'" always; add_header X-Frame-Options "DENY" always; add_header X-Content-Type-Options "nosniff" always; add_header Referrer-Policy "strict-origin-when-cross-origin" always; add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always; }

Sehen Sie, welche Header Ihrer Website fehlen

Unser kostenloser Quickscan prüft Ihre ausgelieferten Response-Header zusammen mit Datenschutz, Nachhaltigkeit, Barrierefreiheit, SEO und Performance - und erklärt jeden Befund verständlich.

Website scannen Letzte Scans
Aktuelle Scans Ratgeber Preise API Datenschutz Impressum © 2026 Erseni