Erweiterte Header in Contao konfigurieren

Erweiterte HTTP-Header in Contao aktivieren — per Symfony EventSubscriber oder .htaccess. Mit Verifizierung und häufigen Fehlern.

Contao · Schritt für Schritt

Erweiterte Header in Contao

Erweiterte HTTP-Header bieten zusätzliche Sicherheitsschichten. Im Wolf-Agents Web Security Check 4 von 166 Punkten.

In Contao setzen Sie diese Header per Symfony EventSubscriber. Keine Kompatibilitätsprobleme zu erwarten.

In Contao-Projekten werden Security-Header typischerweise auf drei Ebenen konfiguriert: in der config/config.yaml fuer Symfony-Framework-Header, per EventSubscriber fuer dynamische Header und in der public/.htaccess fuer Apache-Level-Header. Fuer Erweiterte Security Headers empfehlen wir die Konfiguration per EventSubscriber, da dieser die meiste Flexibilitaet bietet und nicht von der Webserver-Konfiguration abhaengt.

Nach jeder Aenderung an der Header-Konfiguration muessen Sie den Contao-Cache leeren: vendor/bin/contao-console cache:clear. Ohne Cache-Clear werden Aenderungen an der config.yaml oder an EventSubscribern nicht wirksam. In Produktionsumgebungen verwenden Sie cache:clear --env=prod fuer den korrekten Cache-Kontext.

Erweiterte Header-Implementierung in Contao

Der EventSubscriber ist der empfohlene Weg — unabhängig vom Webserver, überlebt Updates. Die .htaccess ist der schnelle Fallback.

EventSubscriber (empfohlen)
AdvancedHeadersSubscriber.php Empfohlen
<?php
// src/EventSubscriber/AdvancedHeadersSubscriber.php
namespace AppEventSubscriber;
use SymfonyComponentEventDispatcherEventSubscriberInterface;
use SymfonyComponentHttpKernelEventResponseEvent;
use SymfonyComponentHttpKernelKernelEvents;
class AdvancedHeadersSubscriber implements EventSubscriberInterface {
  public static function getSubscribedEvents(): array {
    return [KernelEvents::RESPONSE => ['onResponse', 0]];
  }
  public function onResponse(ResponseEvent $event): void {
    $response = $event->getResponse();
    $response->headers->set('Origin-Agent-Cluster', '?1');
    $response->headers->set('X-DNS-Prefetch-Control', 'off');
    $response->headers->set('X-Download-Options', 'noopen');
    $response->headers->set('X-Permitted-Cross-Domain-Policies', 'none');
  }
}
.htaccess Fallback
public/.htaccess Fallback
# public/.htaccess — Erweiterte HTTP-Header
<IfModule mod_headers.c>
  Header always set Origin-Agent-Cluster "?1"
</IfModule>
Cache leeren nicht vergessen

Nach jeder Änderung: vendor/bin/contao-console cache:clear

Verifizierung

Nach der Konfiguration prüfen Sie den Header per curl. Testen Sie auf verschiedenen Seitentypen — Startseite, Detailseiten und Formulare.

Terminal Verifizierung
# Cache leeren
vendor/bin/contao-console cache:clear
# Header prüfen
curl -sI https://ihre-domain.de | grep -i origin-agent|x-dns-prefetch
# Erwartete Ausgabe:
# origin-agent-cluster: ?1

Häufige Fehler bei Erweiterte Header in Contao

contao-console cache:clear vergessen

EventSubscriber-Änderungen erfordern Cache-Invalidierung.

Contao-Extension überschreibt Header

Extensions mit Response-Listenern können Header überschreiben.

X-DNS-Prefetch-Control off bremst Performance

Minimaler Performance-Verlust — Sicherheitsgewinn überwiegt.

Compliance-Relevanz

Die korrekte Implementierung von Erweiterte Security Headers ist nicht nur eine technische Best Practice, sondern eine Anforderung, die bei Sicherheitsaudits und Penetrationstests regelmaessig geprueft wird. Fehlende oder falsch konfigurierte Header koennen zu Audit-Findings fuehren und die Zertifizierung gefaehrden.

Erweiterte HTTP-Header erfüllt Anforderungen aus mehreren Compliance-Frameworks.

NIS2Art. 21(e) — Sicherheit bei Erwerb, Entwicklung und Wartung von Informationssystemen
BSIAPP.3.1 — Webserver-Absicherung mit Security Headern
DSGVOArt. 32 — Technische Maßnahmen zum Schutz personenbezogener Daten

Wie steht Ihre Domain bei Erweiterte Header?

Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.