Drupal — Alle Security-Header-Anleitungen
Schritt-für-Schritt-Anleitungen für jeden Security Header in Drupal. seckit-Modul, Custom EventSubscriber und .htaccess-Fallback — von HSTS in 5 Minuten bis CSP mit Nonces.
Security Headers in Drupal — drei Konfigurationswege
Drupal bietet drei Wege zur Header-Konfiguration: Das Security Kit Modul (seckit)
über /admin/config/system/seckit für Standard-Header per Checkbox, einen
Custom EventSubscriber (PHP, Symfony kernel.response Event) für
maximale Kontrolle, und die .htaccess als Fallback auf Apache-Servern.
seckit deckt die meisten Header ab — CSP, HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy und Permissions Policy. Für fortgeschrittene Header wie Cross-Origin (CORP/COEP/COOP), Reporting API oder Clear-Site-Data benötigen Sie einen EventSubscriber. Die .htaccess-Methode funktioniert ohne Drupal-Kenntnisse, wird aber bei Core-Updates überschrieben.
Wichtig: Nach jeder Konfigurationsänderung ist ein drush cr
(Cache Rebuild) zwingend erforderlich. Ohne Cache Rebuild werden Änderungen an EventSubscribern
und Modul-Konfigurationen nicht aktiv.
Drupal-Anleitungen nach Thema
Jede Anleitung erklärt einen Security Header Schritt für Schritt — mit Drupal-spezifischen Konfigurationen für seckit, EventSubscriber und .htaccess. Die Punkte zeigen den Einfluss auf Ihre Web Security Note.
Implementierungs-Architektur
Drei Konfigurationswege im Vergleich: Security Kit Modul, Custom EventSubscriber und .htaccess-Fallback.
Content Security Policy (CSP)
XSS-Schutz mit drupal.org/project/csp-Modul (Nonce-Support), seckit CSP-Tab oder EventSubscriber.
HTTP Strict Transport Security
HTTPS erzwingen per seckit HSTS-Sektion, EventSubscriber oder .htaccess-Konfiguration.
Sichere Cookie-Konfiguration
cookie_domain, session.cookie_secure und cookie_lifetime in settings.php konfigurieren.
Permissions Policy
Browser-APIs einschränken per seckit Feature-Policy-Sektion oder Custom EventSubscriber.
Clickjacking-Schutz
X-Frame-Options per seckit Clickjacking-Sektion oder EventSubscriber konfigurieren.
Referrer-Policy
Referrer-Informationen kontrollieren per seckit oder EventSubscriber-Konfiguration.
X-Content-Type-Options
MIME-Sniffing verhindern per seckit-Checkbox oder EventSubscriber — eine Zeile Konfiguration.
Cross-Origin Headers
CORP, COEP und COOP gegen Spectre-Angriffe — nur per EventSubscriber, seckit unterstützt diese Header nicht.
Subresource Integrity
Hash-Prüfung über Drupals *.libraries.yml Asset-System und Build-Time-Hash-Generierung.
security.txt
Kontaktdatei unter .well-known/ mit RewriteRule-Ausnahme — Drupal leitet sonst alle URLs um.
TLS & Zertifikate
TLS auf Server-Ebene konfigurieren — $settings['reverse_proxy'] und Base-URL in settings.php.
Cache-Control
Sicherheitsrelevante Cache-Direktiven per Internal Page Cache und drupal_page_cache_kill_switch.
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 user.logout-Route.
Erweiterte Header
Origin-Agent-Cluster, X-DNS-Prefetch-Control und weitere Header per EventSubscriber.
In 3 Schritten zur sicheren Drupal-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.
seckit installieren
Installieren Sie das Security Kit Modul
mit composer require drupal/seckit und aktivieren Sie es unter
/admin/config/system/seckit. Damit setzen Sie HSTS,
X-Content-Type-Options und X-Frame-Options per Checkbox.
EventSubscriber für erweiterte Header
Für Header, die seckit nicht abdeckt, erstellen Sie einen Custom EventSubscriber in einem eigenen Modul. So konfigurieren Sie Cross-Origin-Header, Reporting API und Clear-Site-Data sauber.
Nicht Drupal? 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
seckit oder EventSubscriber — was ist besser für Drupal Security Headers?
Für Standard-Header wie HSTS, X-Frame-Options und X-Content-Type-Options ist seckit die schnellste Lösung — Checkbox aktivieren, fertig. Für fortgeschrittene Header wie Cross-Origin (CORP/COEP/COOP), Reporting API oder Clear-Site-Data benötigen Sie einen Custom EventSubscriber, da seckit diese Header nicht unterstützt. Idealerweise kombinieren Sie beide Ansätze.
Wie konfiguriere ich CSP in Drupal, ohne CKEditor zu brechen?
CKEditor nutzt Inline-Styles und Inline-Scripts. Verwenden Sie das drupal.org/project/csp-Modul, das Nonce-Support bietet und CKEditor-kompatibel ist. Alternativ fügen Sie unsafe-inline zu style-src hinzu — für script-src sollten Sie stattdessen Nonces verwenden, niemals unsafe-inline.
Welche Drupal-Einstellungen gehören in settings.php für Security?
Die wichtigsten Security-Einstellungen in settings.php sind: $settings['trusted_host_patterns'] gegen Host-Header-Injection, ini_set('session.cookie_secure', TRUE) für sichere Cookies, $settings['reverse_proxy'] bei Proxy-Setups und $settings['cookie_domain'] für korrekte Cookie-Zuordnung.
Ab welcher Drupal-Version funktionieren die Anleitungen?
Alle Anleitungen sind für Drupal 10+ geschrieben. seckit funktioniert ab Drupal 8. EventSubscriber mit dem Symfony kernel.response Event funktionieren ab Drupal 8. Für Drupal 7 nutzen Sie stattdessen hook_boot() oder die .htaccess-Methode. Die .htaccess-Variante funktioniert versionsunabhängig.
Kann ich Security Headers auf Shared Hosting mit Drupal setzen?
Ja. Auf Shared Hosting ohne Zugriff auf die Server-Konfiguration nutzen Sie seckit (kein Server-Zugriff nötig) oder einen Custom EventSubscriber. Als Fallback funktioniert die .htaccess mit mod_headers — beachten Sie aber, dass Drupal-Core-Updates die .htaccess überschreiben können. Sichern Sie Ihre .htaccess-Änderungen immer separat.