Art. 32 DSGVO verlangt „geeignete technische und organisatorische Maßnahmen" zum Schutz personenbezogener Daten. HTTP-Security-Headers sind eine dieser Maßnahmen — und eine der am häufigsten fehlenden. Sechs Header weisen den Browser an, bestimmte Schutzmaßnahmen zu aktivieren: HTTPS erzwingen, Clickjacking verhindern, Cross-Site-Scripting blockieren. Ohne diese Header ist der Browser auf sich allein gestellt — und der Nutzer ungeschützt.
Art. 32 Abs. 1 DSGVO nennt unter anderem „die Fähigkeit, die Vertraulichkeit, Integrität, Verfügbarkeit und Belastbarkeit der Systeme und Dienste im Zusammenhang mit der Verarbeitung auf Dauer sicherzustellen." Security Headers adressieren unmittelbar die Vertraulichkeit und Integrität der Datenübertragung.
Die sechs Header im Detail
1. Strict-Transport-Security (HSTS)
HSTS weist den Browser an, die Website ausschließlich über HTTPS aufzurufen — auch wenn der Nutzer http:// eingibt. Ohne HSTS kann ein Angreifer im selben Netzwerk den ersten HTTP-Request abfangen und auf eine gefälschte Seite umleiten (SSL-Stripping).
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
max-age=63072000 bedeutet zwei Jahre. includeSubDomains schützt alle Subdomains. preload ermöglicht die Aufnahme in die HSTS-Preload-Liste der Browser.
2. Content-Security-Policy (CSP)
CSP kontrolliert, von welchen Quellen der Browser Scripte, Styles, Bilder und andere Ressourcen laden darf. Ein korrekt konfigurierter CSP-Header verhindert Cross-Site-Scripting (XSS), die häufigste Schwachstelle in Webanwendungen.
Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self'; frame-ancestors 'none'; base-uri 'self'; form-action 'self'
3. X-Frame-Options
Ältere Browser unterstützen frame-ancestors in CSP nicht. X-Frame-Options: DENY ist die Rückfallebene, die Clickjacking auch in älteren Umgebungen verhindert.
X-Frame-Options: DENY
4. X-Content-Type-Options
Ohne diesen Header rät der Browser den MIME-Type einer Datei anhand ihres Inhalts (MIME-Sniffing). Ein Angreifer kann eine als Bild getarnte JavaScript-Datei hochladen, die der Browser dann ausführt.
X-Content-Type-Options: nosniff
5. Referrer-Policy
Standardmäßig sendet der Browser bei jedem Klick auf einen externen Link die vollständige URL der aktuellen Seite als Referrer. Das kann interne Pfade, Suchbegriffe oder Benutzer-IDs offenlegen.
Referrer-Policy: strict-origin-when-cross-origin
6. Permissions-Policy
Die Permissions-Policy deaktiviert Browser-APIs, die Ihre Website nicht benötigt. Kamera, Mikrofon, Geolocation — wenn Ihre Website diese nicht braucht, sollten sie explizit deaktiviert sein.
Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=()
Konfiguration: Nginx
Für Nginx-Server empfiehlt es sich, die Header in einer separaten Datei zu pflegen und diese in die Server-Blöcke einzubinden:
# /etc/nginx/snippets/security-headers.conf add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always; add_header Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; 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;
Konfiguration: Apache
<IfModule mod_headers.c>
Header always set Strict-Transport-Security
"max-age=63072000; includeSubDomains; preload"
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>Testen und Überwachen
Einmalige Konfiguration reicht nicht. Jedes CMS-Update, jeder neue Dienst und jede Änderung an der Server-Konfiguration kann Security Headers überschreiben oder deaktivieren. Kontinuierliches Monitoring ist keine Paranoia, sondern Sorgfaltspflicht nach Art. 32 DSGVO.
Unser DSGVO-Scanner prüft alle sechs Header und zeigt den aktuellen Wert jedes Headers an. Die Ergebnisse liefern eine direkte Handlungsanweisung für Ihren Administrator oder Hoster.





