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.

Drupal · Alle Kapitel
Drupal · Enterprise CMS

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.

Anleitungen

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.

Leitfaden Beginner

Implementierungs-Architektur

Drei Konfigurationswege im Vergleich: Security Kit Modul, Custom EventSubscriber und .htaccess-Fallback.

35 Pkt Advanced

Content Security Policy (CSP)

XSS-Schutz mit drupal.org/project/csp-Modul (Nonce-Support), seckit CSP-Tab oder EventSubscriber.

15 Pkt Beginner

HTTP Strict Transport Security

HTTPS erzwingen per seckit HSTS-Sektion, EventSubscriber oder .htaccess-Konfiguration.

15 Pkt Intermediate

Sichere Cookie-Konfiguration

cookie_domain, session.cookie_secure und cookie_lifetime in settings.php konfigurieren.

10 Pkt Beginner

Permissions Policy

Browser-APIs einschränken per seckit Feature-Policy-Sektion oder Custom EventSubscriber.

10 Pkt Beginner

Clickjacking-Schutz

X-Frame-Options per seckit Clickjacking-Sektion oder EventSubscriber konfigurieren.

10 Pkt Beginner

Referrer-Policy

Referrer-Informationen kontrollieren per seckit oder EventSubscriber-Konfiguration.

10 Pkt Beginner

X-Content-Type-Options

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

30 Pkt Advanced

Cross-Origin Headers

CORP, COEP und COOP gegen Spectre-Angriffe — nur per EventSubscriber, seckit unterstützt diese Header nicht.

15 Pkt Intermediate

Subresource Integrity

Hash-Prüfung über Drupals *.libraries.yml Asset-System und Build-Time-Hash-Generierung.

2 Pkt Beginner

security.txt

Kontaktdatei unter .well-known/ mit RewriteRule-Ausnahme — Drupal leitet sonst alle URLs um.

4 Pkt Intermediate

TLS & Zertifikate

TLS auf Server-Ebene konfigurieren — $settings['reverse_proxy'] und Base-URL in settings.php.

8 Pkt Intermediate

Cache-Control

Sicherheitsrelevante Cache-Direktiven per Internal Page Cache und drupal_page_cache_kill_switch.

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 user.logout-Route.

4 Pkt Intermediate

Erweiterte Header

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

Leitfaden

Leitfaden

Leitfaden

Leitfaden

Leitfaden

Schnellstart

In 3 Schritten zur sicheren Drupal-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

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.

3

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.

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.