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.

Contao · Alle Kapitel
Contao · Open Source CMS

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.

Anleitungen

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.

Leitfaden Beginner

Implementierungs-Architektur

Drei Konfigurationswege: Natives CSP-Backend (5.3+), Symfony EventSubscriber und .htaccess-Fallback.

35 Pkt Advanced

Content Security Policy (CSP)

XSS-Schutz mit nativem CSP-Backend (5.3+), Twig csp_nonce() und CspHandler für programmatische Kontrolle.

15 Pkt Beginner

HTTP Strict Transport Security

HTTPS erzwingen per config.yaml, EventSubscriber oder public/.htaccess-Konfiguration.

15 Pkt Intermediate

Sichere Cookie-Konfiguration

Session-Cookies in config/config.yaml und framework.yaml absichern: Secure, HttpOnly, SameSite.

10 Pkt Beginner

Permissions Policy

Browser-APIs einschränken per EventSubscriber — Kamera, Mikrofon, Geolocation sperren.

10 Pkt Beginner

Clickjacking-Schutz

X-Frame-Options per EventSubscriber oder config.yaml — Backend automatisch geschützt.

10 Pkt Beginner

Referrer-Policy

Referrer-Informationen kontrollieren per EventSubscriber oder public/.htaccess.

10 Pkt Beginner

X-Content-Type-Options

MIME-Sniffing verhindern per EventSubscriber oder .htaccess — eine Zeile Konfiguration.

30 Pkt Advanced

Cross-Origin Headers

CORP, COEP und COOP gegen Spectre-Angriffe — per EventSubscriber mit Extension-Kompatibilität.

15 Pkt Intermediate

Subresource Integrity

Hash-Prüfung externer Scripts in Twig-Templates — Contao Asset-System und Encore Integration.

2 Pkt Beginner

security.txt

Kontaktdatei unter public/.well-known/ — mit RewriteRule-Ausnahme für Contaos Routing.

4 Pkt Intermediate

TLS & Zertifikate

TLS auf Server-Ebene plus Website-Root-Konfiguration mit HTTPS im Contao Backend.

8 Pkt Intermediate

Cache-Control

Sicherheitsrelevante Cache-Direktiven per config.yaml und Symfony HTTP-Cache-Integration.

4 Pkt Advanced

Reporting API

Report-To und Reporting-Endpoints per EventSubscriber für automatische Sicherheitsberichte.

3 Pkt Beginner

Clear-Site-Data

Browser-Daten beim Logout löschen per EventSubscriber auf der Contao-Logout-Route.

4 Pkt Intermediate

Erweiterte Header

Origin-Agent-Cluster, X-DNS-Prefetch-Control und weitere Header per EventSubscriber.

Schnellstart

In 3 Schritten zur sicheren Contao-Konfiguration

1

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.

2

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.

3

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.

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.