Zum Inhalt springen

Ratgeber

Security-Header einfach erklärt, mit Anleitung für Apache, Nginx und WordPress

HSTS, Content-Security-Policy, X-Frame-Options und Co. verständlich erklärt. Mit fertigen Konfigurationszeilen zum Kopieren für die gängigsten Webserver.

Veröffentlicht am 22. Oktober 2026, 8 Minuten Lesezeit

Wie gut ist meine Website gegen typische Angriffe geschützt?Mit dem Sicherheits-Header-Check kostenlos prüfen

Bei jedem Seitenaufruf schickt dein Server nicht nur die Seite selbst, sondern auch sogenannte HTTP-Header. Einige davon sagen dem Browser, wie er sich verhalten soll, um Besucher zu schützen. Diese Security-Header kosten nichts, brauchen wenige Zeilen Konfiguration und machen viele typische Angriffe deutlich schwerer.

Wie es um deine Website steht, zeigt dir der Sicherheits-Header-Check mit einer Note von A bis F.

Die sechs wichtigsten Header

Strict-Transport-Security (HSTS)

Weist den Browser an, deine Website für eine bestimmte Zeit ausschließlich über HTTPS aufzurufen, auch wenn jemand http:// eintippt oder auf einen alten Link klickt. Das verhindert, dass ein Angreifer im selben WLAN Besucher auf eine unverschlüsselte Version umleitet.

Strict-Transport-Security: max-age=31536000; includeSubDomains

Wichtig: Setze HSTS erst, wenn deine Website und alle Subdomains zuverlässig über HTTPS funktionieren. Der Browser merkt sich die Anweisung für die angegebene Zeit, hier ein Jahr.

Content-Security-Policy (CSP)

Legt fest, von welchen Quellen Skripte, Bilder, Schriften und andere Inhalte geladen werden dürfen. Schafft es ein Angreifer, Schadcode in deine Seite einzuschleusen (Cross-Site-Scripting), blockiert der Browser ihn, weil er nicht aus einer erlaubten Quelle stammt.

Content-Security-Policy: default-src 'self'; img-src 'self' data:; frame-ancestors 'none'

Die CSP ist der wirksamste, aber auch der aufwendigste Header. Bindest du externe Dienste ein, etwa Google Maps, YouTube oder ein Buchungs-Widget, musst du diese Quellen ausdrücklich erlauben. Tipp: Teste zuerst mit Content-Security-Policy-Report-Only. Dann meldet der Browser Verstöße nur in der Konsole, blockiert aber nichts.

X-Frame-Options

Verhindert, dass andere Websites deine Seite in einem unsichtbaren Rahmen einbetten. Bei diesem Trick, genannt Clickjacking, klicken Besucher unbemerkt auf Schaltflächen deiner Seite.

X-Frame-Options: DENY

Moderner geht das mit frame-ancestors 'none' in der CSP. Viele setzen zur Sicherheit beides.

X-Content-Type-Options

Verhindert, dass der Browser rät, was für eine Datei er gerade bekommt. Ohne diesen Header könnte eine hochgeladene Textdatei als ausführbares Skript interpretiert werden.

X-Content-Type-Options: nosniff

Referrer-Policy

Steuert, welche Adressinformation beim Klick auf einen externen Link weitergegeben wird. Ohne Einschränkung kann die vollständige Adresse inklusive Parametern übermittelt werden, was bei Suchanfragen oder Formular-Links persönliche Daten verraten kann.

Referrer-Policy: strict-origin-when-cross-origin

Permissions-Policy

Legt fest, welche Browser-Funktionen deine Seite und eingebettete Inhalte nutzen dürfen. Brauchst du Kamera, Mikrofon oder Standort nicht, sperre sie.

Permissions-Policy: camera=(), microphone=(), geolocation=()

So richtest du die Header ein

Apache (.htaccess)

Bei den meisten Webhosting-Paketen mit Apache kannst du die Header in die Datei .htaccess im Hauptverzeichnis deiner Website schreiben:

<IfModule mod_headers.c>
  Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
  Header always set X-Content-Type-Options "nosniff"
  Header always set X-Frame-Options "DENY"
  Header always set Referrer-Policy "strict-origin-when-cross-origin"
  Header always set Permissions-Policy "camera=(), microphone=(), geolocation=()"
</IfModule>

Nginx

In der Konfiguration des jeweiligen server-Blocks:

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "DENY" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;

Danach mit nginx -t prüfen und neu laden.

WordPress

Hast du keinen Zugriff auf die Server-Konfiguration, helfen Sicherheits-Plugins, die Header setzen können. Oft lässt sich die .htaccess aber auch über den Dateimanager deines Hosters bearbeiten. Mach vorher eine Sicherungskopie der Datei, ein Tippfehler kann die ganze Website lahmlegen.

Reihenfolge für Einsteiger

Fang mit den vier einfachen Headern an: X-Content-Type-Options, X-Frame-Options, Referrer-Policy und Permissions-Policy. Die gehen praktisch nie schief. Danach kommt HSTS, sobald HTTPS überall funktioniert. Die Content-Security-Policy hebst du dir für zuletzt auf und testest sie gründlich.

Nach jeder Änderung prüfst du das Ergebnis mit dem Sicherheits-Header-Check.

Manche Hosting-Pakete erlauben keine eigenen Header. Dann lohnt es sich, über einen Wechsel nachzudenken.