Sécurité

HTTP-Sicherheitsheader: Der vollständige Leitfaden

HTTP-Sicherheitsheader sind die erste Verteidigungslinie Ihrer Webanwendung. HSTS, CSP, X-Frame-Options und weitere Header richtig konfigurieren.

5 mars 20253 min de lectureWarDek Team

HTTP-Sicherheitsheader: Der vollständige Leitfaden für 2025

HTTP-Sicherheitsheader sind Anweisungen an den Browser, wie er Ihre Website behandeln soll. Richtig konfiguriert, verhindern sie ganze Angriffskategorien — von Cross-Site-Scripting über Clickjacking bis zum Downgrade auf unverschlüsselte Verbindungen. Das Beste: Die Konfiguration dauert minuten, der Schutz ist sofort aktiv.

Die 7 wichtigsten Sicherheitsheader

1. Strict-Transport-Security (HSTS)

Was: Erzwingt HTTPS für alle Verbindungen — auch wenn der Benutzer http:// eingibt.

Warum: Verhindert SSL-Stripping-Angriffe, bei denen ein Angreifer die Verbindung auf HTTP herabstuft.

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

| Parameter | Bedeutung | |---|---| | max-age=31536000 | Browser merkt sich HTTPS für 1 Jahr | | includeSubDomains | Gilt auch für alle Subdomains | | preload | Aufnahme in Browser-Preload-Liste (permanent HTTPS) |

Vorsicht: Aktivieren Sie includeSubDomains erst, wenn alle Subdomains HTTPS unterstützen. Ein vergessenes Staging-System kann sonst unerreichbar werden.

2. Content-Security-Policy (CSP)

Was: Definiert, welche Ressourcen (Scripts, Styles, Bilder) der Browser laden darf.

Warum: Primärer Schutz gegen Cross-Site-Scripting (XSS) — selbst wenn eine XSS-Lücke existiert, verhindert CSP die Ausführung eingeschleusten Codes.

Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self'; connect-src 'self'; frame-ancestors 'none'

| Direktive | Erlaubt | |---|---| | default-src 'self' | Standardmäßig nur eigene Domain | | script-src 'self' | Scripts nur von eigener Domain | | style-src 'self' 'unsafe-inline' | Styles + Inline-Styles (oft nötig für CMS) | | img-src 'self' data: https: | Bilder von eigener Domain, Data-URLs, HTTPS | | frame-ancestors 'none' | Seite darf nicht eingebettet werden (Clickjacking) |

Tipp: Starten Sie mit Content-Security-Policy-Report-Only im Report-Modus und analysieren Sie Verstöße, bevor Sie blockierend schalten.

3. X-Content-Type-Options

Was: Verhindert MIME-Type-Sniffing durch den Browser.

Warum: Ohne diesen Header kann der Browser eine Datei anders interpretieren als beabsichtigt — z.B. eine Bilddatei als JavaScript ausführen.

X-Content-Type-Options: nosniff

Ein-Zeilen-Header, keine Konfiguration nötig. Immer setzen.

4. X-Frame-Options

Was: Kontrolliert, ob Ihre Seite in einem <iframe> eingebettet werden darf.

Warum: Schutz gegen Clickjacking — ein Angreifer legt eine unsichtbare Seite über einen sichtbaren Button.

X-Frame-Options: DENY

| Wert | Bedeutung | |---|---| | DENY | Einbettung komplett verboten | | SAMEORIGIN | Nur von eigener Domain (z.B. für Admin-Panels) |

Hinweis: frame-ancestors in CSP ist der modernere Ersatz. Setzen Sie trotzdem beide für maximale Browser-Kompatibilität.

5. Referrer-Policy

Was: Kontrolliert, welche URL-Informationen beim Navigieren an die Zielseite gesendet werden.

Warum: Verhindert Datenlecks durch URLs, die Session-Tokens, Suchbegriffe oder interne Pfade enthalten.

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

| Wert | Verhalten | |---|---| | no-referrer | Kein Referrer (maximaler Schutz, bricht manches Analytics) | | strict-origin-when-cross-origin | Empfohlen — Origin bei Cross-Site, volle URL bei Same-Site | | same-origin | Referrer nur bei gleicher Domain |

6. Permissions-Policy

Was: Kontrolliert, welche Browser-APIs Ihre Seite und eingebettete Inhalte nutzen dürfen.

Warum: Verhindert, dass Drittanbieter-Scripts auf Kamera, Mikrofon oder Standort zugreifen.

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

Die leeren Klammern () bedeuten: Für niemanden erlaubt — weder die eigene Seite noch eingebettete Inhalte.

7. Cross-Origin-Opener-Policy (COOP) und Cross-Origin-Embedder-Policy (COEP)

Was: Isoliert Ihre Seite vor Side-Channel-Angriffen (Spectre).

Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp

Hinweis: Diese Header können Drittanbieter-Einbettungen (YouTube, Google Maps) brechen. Nur setzen, wenn Sie cross-origin Isolation benötigen.

Konfigurationsbeispiele

Nginx

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
add_header Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self'; connect-src 'self'; frame-ancestors 'none'" 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;

Apache (.htaccess)

Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
Header always set Content-Security-Policy "default-src 'self'; script-src 'self'"
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=()"

Next.js (next.config.js)

const securityHeaders = [
  { key: 'Strict-Transport-Security', value: 'max-age=31536000; includeSubDomains; preload' },
  { key: 'X-Content-Type-Options', value: 'nosniff' },
  { key: 'X-Frame-Options', value: 'DENY' },
  { key: 'Referrer-Policy', value: 'strict-origin-when-cross-origin' },
  { key: 'Permissions-Policy', value: 'camera=(), microphone=(), geolocation=()' },
]

Header, die Sie entfernen sollten

| Header | Warum entfernen | |---|---| | Server: Apache/2.4.41 | Verrät Server-Software und -Version | | X-Powered-By: Express | Verrät Framework | | X-AspNet-Version | Verrät ASP.NET-Version |

# Nginx: Server-Header entfernen
server_tokens off;

Testen und Überwachen

| Tool | URL | Note | |---|---|---| | Security Headers | securityheaders.com | Ziel: Note A+ | | Mozilla Observatory | observatory.mozilla.org | Umfassende Analyse | | WarDek Scanner | wardek.com | OWASP + Header + Compliance |

Häufige Fehler

| Fehler | Konsequenz | Lösung | |---|---|---| | CSP zu streng beim ersten Versuch | Website funktioniert nicht | Report-Only-Modus zuerst | | HSTS mit includeSubDomains ohne Prüfung | Subdomains ohne HTTPS unerreichbar | Erst alle Subdomains prüfen | | Header nur auf Hauptseite, nicht auf API | API-Endpunkte ungeschützt | Server-weit konfigurieren | | X-Frame-Options: ALLOW-FROM | Veraltet, wird ignoriert | frame-ancestors in CSP verwenden |

Fazit

HTTP-Sicherheitsheader sind eine der effektivsten und einfachsten Sicherheitsmaßnahmen für Webanwendungen. In wenigen Minuten konfiguriert, schützen sie gegen XSS, Clickjacking, Protokoll-Downgrades und Datenlecks. Es gibt keinen Grund, sie nicht zu setzen.


Scannen Sie Ihre Website kostenlos mit WarDek — OWASP, NIS2, DSGVO, AI Act Compliance in einem Scan.

#HTTP-Header#HSTS#CSP#Sicherheit

Scannez votre site gratuitement

WarDek détecte les vulnérabilités mentionnées dans cet article en quelques secondes.

Retour à Sécurité