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
ParameterBedeutung
max-age=31536000Browser merkt sich HTTPS für 1 Jahr
includeSubDomainsGilt auch für alle Subdomains
preloadAufnahme 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'
DirektiveErlaubt
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
WertBedeutung
DENYEinbettung komplett verboten
SAMEORIGINNur 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
WertVerhalten
no-referrerKein Referrer (maximaler Schutz, bricht manches Analytics)
strict-origin-when-cross-originEmpfohlen — Origin bei Cross-Site, volle URL bei Same-Site
same-originReferrer 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

HeaderWarum entfernen
Server: Apache/2.4.41Verrät Server-Software und -Version
X-Powered-By: ExpressVerrät Framework
X-AspNet-VersionVerrät ASP.NET-Version
# Nginx: Server-Header entfernen
server_tokens off;

Testen und Überwachen

ToolURLNote
Security Headerssecurityheaders.comZiel: Note A+
Mozilla Observatoryobservatory.mozilla.orgUmfassende Analyse
WarDek Scannerwardek.comOWASP + Header + Compliance

Häufige Fehler

FehlerKonsequenzLösung
CSP zu streng beim ersten VersuchWebsite funktioniert nichtReport-Only-Modus zuerst
HSTS mit includeSubDomains ohne PrüfungSubdomains ohne HTTPS unerreichbarErst alle Subdomains prüfen
Header nur auf Hauptseite, nicht auf APIAPI-Endpunkte ungeschütztServer-weit konfigurieren
X-Frame-Options: ALLOW-FROMVeraltet, wird ignoriertframe-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.