security.txt in Drupal einrichten
Standardisierte Kontaktdatei für Sicherheitsforscher in Drupal — .well-known/security.txt mit RewriteRule-Ausnahme, damit Drupal die Datei nicht umleitet.
security.txt in Drupal
security.txt ist eine standardisierte Datei unter /.well-known/security.txt, über die Sicherheitsforscher Ihren Kontakt finden. Im Wolf-Agents Web Security Check bringt sie 2 von 166 Punkten. Die Herausforderung in Drupal: Das CMS leitet alle URLs über index.php um — die statische Datei wird ohne Konfiguration nicht ausgeliefert.
Sie haben zwei Optionen: Eine statische Datei mit RewriteRule-Ausnahme in der .htaccess oder eine Drupal-Route in einem Custom-Modul. Die statische Datei ist einfacher, die Route ist update-sicher.
Der Wolf-Agents Web Security Check prüft automatisch, ob eine gültige security.txt unter /.well-known/security.txt erreichbar ist, ob die Pflichtfelder vorhanden sind und ob das Expires-Datum noch gültig ist.
Implementierung
Erstellen Sie die Datei und fügen Sie eine RewriteRule-Ausnahme in der .htaccess hinzu. Alternativ nutzen Sie eine Drupal-Route.
# .well-known/security.txt
Contact: mailto:security@ihre-domain.de
Expires: 2027-03-27T00:00:00.000Z
Preferred-Languages: de, en
Canonical: https://ihre-domain.de/.well-known/security.txt
Policy: https://ihre-domain.de/security-policy# .htaccess — RewriteRule-Ausnahme für .well-known/
# WICHTIG: VOR dem Drupal-RewriteRule-Block einfügen!
# Bestehende Drupal-Regel:
# RewriteRule ^ index.php [L]
# DAVOR einfügen:
RewriteRule "^.well-known/" - [L]# Alternative: Drupal-Route statt statischer Datei
# modules/custom/security_txt/security_txt.routing.yml
security_txt.well_known:
path: '/.well-known/security.txt'
defaults:
_controller: '\Drupal\security_txt\Controller\SecurityTxtController::content'
requirements:
_access: 'TRUE'Verifizierung
Die Datei muss direkt abrufbar sein — nicht Drupals 404-Seite. Ein 200 OK mit dem korrekten Dateiinhalt bestätigt die Konfiguration. Ein 404 deutet auf eine fehlende RewriteRule-Ausnahme hin, ein 403 auf falsche Dateiberechtigungen.
# security.txt abrufen
curl https://ihre-domain.de/.well-known/security.txt
# Erwartete Ausgabe:
# Contact: mailto:security@ihre-domain.de
# Expires: 2027-...
# Muss den Inhalt der Datei zurückgeben, NICHT Drupals 404Häufige Fehler
Die häufigsten Probleme betreffen die Erreichbarkeit der Datei — Drupal leitet alle URLs über index.php um, was statische Dateien unter .well-known/ blockiert.
Drupal leitet auf 404 um
Ohne RewriteRule-Ausnahme fängt Drupal die URL ab und zeigt eine 404-Seite. Die Ausnahme muss vor dem Drupal-RewriteRule-Block stehen.
Core-Update überschreibt .htaccess
Bei composer update drupal/core wird die .htaccess überschrieben. Ihre RewriteRule-Ausnahme geht verloren. Nutzen Sie alternativ die Drupal-Route — diese ist update-sicher.
Expires-Datum abgelaufen
Das Expires-Feld ist Pflicht nach RFC 9116. Setzen Sie ein Datum maximal 1 Jahr in der Zukunft und erneuern Sie es regelmäßig.
Dateiberechtigungen zu restriktiv
Die Datei muss für den Webserver lesbar sein. Auf Linux-Servern setzen Sie die Berechtigungen auf 644. Bei zu restriktiven Berechtigungen liefert Apache einen 403-Fehler statt der Datei.
Compliance-Relevanz
Eine security.txt erleichtert Sicherheitsforschern die koordinierte Offenlegung von Schwachstellen und ist in vielen Compliance-Frameworks als Best Practice empfohlen.
Zusammenfassung
security.txt in Drupal erfordert eine RewriteRule-Ausnahme
in der .htaccess oder eine Drupal-Route im Custom-Modul.
Die Route ist update-sicher, die statische Datei einfacher.
Erneuern Sie das Expires-Datum jährlich und prüfen Sie
die Erreichbarkeit mit curl.
Der Wolf-Agents Scanner warnt automatisch bei abgelaufenen security.txt-Dateien und prüft alle Pflichtfelder.
Wie steht Ihre Domain bei security.txt?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.