Contao — Alle Security-Header-Anleitungen
Schritt-für-Schritt-Anleitungen für jeden Security Header in Contao. Natives CSP-Backend (5.3+), Symfony EventSubscriber und .htaccess-Fallback — von HSTS in 5 Minuten bis CSP mit Nonces.
Security Headers in Contao — drei Konfigurationswege
Contao ist besonders im DACH-Raum bei Behörden, Kommunen und Agenturen verbreitet. Seit
Contao 5.3 bietet das CMS ein natives CSP-Backend: Im Backend unter
Website Root konfigurieren Sie die Content-Security-Policy direkt. In
Twig-Templates generieren Sie Nonces mit {{ csp_nonce('script-src') }}.
Für alle weiteren Security Header stehen zwei Wege zur Verfügung: Ein Symfony EventSubscriber in einem Custom Bundle für maximale Kontrolle, oder die public/.htaccess als Apache-Fallback. Da Contao auf Symfony basiert, funktionieren alle Symfony-üblichen Konfigurationswege.
Wichtig: Nach jeder Konfigurationsänderung muss der Cache mit
vendor/bin/contao-console cache:clear geleert werden. Ohne Cache-Invalidierung
werden Änderungen an EventSubscribern und config.yaml nicht wirksam. Der Wolf-Agents
Web Security Check prüft 166 Punkte und zeigt
Ihnen sofort, welche Header fehlen.
Contao-Anleitungen nach Thema
Jede Anleitung erklärt einen Security Header Schritt für Schritt — mit Contao-spezifischen Konfigurationen für config.yaml, EventSubscriber und .htaccess. Die Punkte zeigen den Einfluss auf Ihre Web Security Note.
Implementierungs-Architektur
Drei Konfigurationswege: Natives CSP-Backend (5.3+), Symfony EventSubscriber und .htaccess-Fallback.
Content Security Policy (CSP)
XSS-Schutz mit nativem CSP-Backend (5.3+), Twig csp_nonce() und CspHandler für programmatische Kontrolle.
HTTP Strict Transport Security
HTTPS erzwingen per config.yaml, EventSubscriber oder public/.htaccess-Konfiguration.
Sichere Cookie-Konfiguration
Session-Cookies in config/config.yaml und framework.yaml absichern: Secure, HttpOnly, SameSite.
Permissions Policy
Browser-APIs einschränken per EventSubscriber — Kamera, Mikrofon, Geolocation sperren.
Clickjacking-Schutz
X-Frame-Options per EventSubscriber oder config.yaml — Backend automatisch geschützt.
Referrer-Policy
Referrer-Informationen kontrollieren per EventSubscriber oder public/.htaccess.
X-Content-Type-Options
MIME-Sniffing verhindern per EventSubscriber oder .htaccess — eine Zeile Konfiguration.
Cross-Origin Headers
CORP, COEP und COOP gegen Spectre-Angriffe — per EventSubscriber mit Extension-Kompatibilität.
Subresource Integrity
Hash-Prüfung externer Scripts in Twig-Templates — Contao Asset-System und Encore Integration.
security.txt
Kontaktdatei unter public/.well-known/ — mit RewriteRule-Ausnahme für Contaos Routing.
TLS & Zertifikate
TLS auf Server-Ebene plus Website-Root-Konfiguration mit HTTPS im Contao Backend.
Cache-Control
Sicherheitsrelevante Cache-Direktiven per config.yaml und Symfony HTTP-Cache-Integration.
Reporting API
Report-To und Reporting-Endpoints per EventSubscriber für automatische Sicherheitsberichte.
Clear-Site-Data
Browser-Daten beim Logout löschen per EventSubscriber auf der Contao-Logout-Route.
Erweiterte Header
Origin-Agent-Cluster, X-DNS-Prefetch-Control und weitere Header per EventSubscriber.
In 3 Schritten zur sicheren Contao-Konfiguration
Status prüfen
Starten Sie mit dem kostenlosen Web Security Check. 166 Prüfpunkte zeigen Ihnen in Sekunden, welche Header fehlen und wo Handlungsbedarf besteht.
EventSubscriber anlegen
Erstellen Sie einen zentralen Symfony EventSubscriber in einem Custom Bundle. Dieser setzt HSTS, X-Content-Type-Options und Referrer-Policy in einer Datei — sauberer als einzelne .htaccess-Einträge.
CSP über Backend oder CspHandler
Die Content Security Policy konfigurieren Sie ab Contao 5.3 nativ im Backend unter Website Root. Für programmatische Kontrolle nutzen Sie den CspHandler — inklusive automatischer Nonce-Generierung in Twig-Templates.
Nicht Contao? Andere Anleitungen verfügbar
Webserver
CMS & Shop-Systeme
Frameworks & Sprachen
Hosting-Anbieter
Wie sicher ist Ihre Website?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.
Häufig gestellte Fragen
Unterstützt Contao CSP nativ?
Ja, seit Contao 5.3. Im Backend unter Website Root finden Sie ein Feld für die Content-Security-Policy. Zusätzlich können Sie in Twig-Templates mit {{ csp_nonce('script-src') }} Nonces generieren und mit dem CspHandler programmatisch CSP-Quellen hinzufügen. Für ältere Versionen nutzen Sie config/config.yaml oder einen Symfony EventSubscriber.
Wie konfiguriere ich Security Headers in Contao 5?
Es gibt drei Wege: Über config/config.yaml für einfache Header-Konfiguration, per Symfony EventSubscriber in einem Custom Bundle für maximale Kontrolle, oder als .htaccess-Fallback unter public/.htaccess. Die config.yaml-Methode ist der sauberste Weg für Header, die Contao nicht nativ unterstützt.
Funktionieren die Anleitungen mit Contao Managed Edition?
Ja. Die Managed Edition ist der empfohlene Installationsweg und alle Anleitungen sind dafür geschrieben. config/config.yaml, EventSubscriber und public/.htaccess funktionieren identisch. Der einzige Unterschied: Bei Managed Edition liegt die .htaccess unter public/.htaccess statt im Document Root.
Wo liegt die .htaccess in Contao 5?
In Contao 5 (Managed Edition) liegt die .htaccess unter public/.htaccess, da der Document Root auf das public/-Verzeichnis zeigt. Bei älteren Contao-Versionen (4.x) kann die .htaccess im Projekt-Root liegen. Prüfen Sie Ihre VirtualHost-Konfiguration für den korrekten Pfad.
Brauche ich zusätzliche Extensions für Security Headers?
Nein. Contao 5.3+ bietet natives CSP-Management. Für alle anderen Header (HSTS, Referrer-Policy, X-Content-Type-Options etc.) genügt ein Symfony EventSubscriber in einem Custom Bundle oder die .htaccess-Methode. Keine zusätzlichen Extensions nötig.