Sichere Cookies in Drupal konfigurieren

Cookie-Sicherheit in Drupal über settings.php und services.yml — Secure, HttpOnly, SameSite und Trusted-Host-Patterns. Mit Session-Hardening und Verifizierung.

Drupal · Schritt für Schritt

Sichere Cookie-Konfiguration in Drupal

Sichere Cookies schützen Session-Daten vor Diebstahl durch XSS- und Man-in-the-Middle-Angriffe. Die Attribute Secure, HttpOnly und SameSite sind mit 15 von 166 Punkten im Wolf-Agents Web Security Check relevant.

Drupal konfiguriert Cookies zentral in settings.php über PHP ini_set() oder alternativ in der services.yml. Besonders wichtig ist $settings['trusted_host_patterns'] — ohne diese Einstellung ist Drupal anfällig für Host-Header-Injection.

Cookie-Konfiguration in settings.php

Die zentrale Konfiguration erfolgt in sites/default/settings.php. Alternativ können Sie die Session-Parameter in der services.yml setzen. Beide Methoden sind gleichwertig — settings.php hat Vorrang.

settings.php
sites/default/settings.php Produktiv
<?php
// sites/default/settings.php

// Sichere Cookie-Konfiguration
ini_set('session.cookie_secure', TRUE);
ini_set('session.cookie_httponly', TRUE);
ini_set('session.cookie_samesite', 'Lax');
ini_set('session.cookie_lifetime', 0);

// Cookie-Domain (optional, für Subdomain-Sharing)
// $settings['cookie_domain'] = '.ihre-domain.de';

// Trusted Host Patterns (PFLICHT für Sicherheit)
$settings['trusted_host_patterns'] = [
  '^ihre-domain\.de$',
  '^www\.ihre-domain\.de$',
];
services.yml
sites/default/services.yml Alternative
# sites/default/services.yml
# Session-Cookie-Konfiguration (Alternative zu ini_set)
parameters:
  session.storage.options:
    cookie_lifetime: 0
    cookie_secure: true
    cookie_httponly: true
    cookie_samesite: Lax
    gc_maxlifetime: 200000
    gc_probability: 1
    gc_divisor: 100

Verifizierung

Prüfen Sie die Cookie-Attribute im Browser unter DevTools > Application > Cookies. Jeder Session-Cookie muss die Attribute Secure, HttpOnly und SameSite=Lax tragen.

Terminal Verifizierung
# Cache leeren
drush cr

# Set-Cookie-Header prüfen
curl -sI https://ihre-domain.de | grep -i set-cookie

# Erwartete Attribute im Cookie:
# Set-Cookie: SESS...; path=/; secure; HttpOnly; SameSite=Lax

Häufige Fehler bei Cookies in Drupal

Trusted-Host-Pattern fehlt

Ohne $settings['trusted_host_patterns'] akzeptiert Drupal jeden Host-Header. Ein Angreifer kann so Cache-Poisoning durchführen oder Passwort-Reset-Links auf fremde Domains umleiten. Diese Einstellung ist Pflicht.

session.cookie_secure auf HTTP-Umgebung

Wenn Sie session.cookie_secure = TRUE setzen, aber kein HTTPS haben, werden Session-Cookies nicht gesendet — Benutzer können sich nicht einloggen. Prüfen Sie HTTPS zuerst.

cookie_domain bei Multi-Site falsch

Bei Drupal Multi-Site-Installationen muss $settings['cookie_domain'] pro Site korrekt gesetzt sein. Ein falscher Wert teilt Sessions zwischen Sites — ein Sicherheitsrisiko.

Compliance-Relevanz

Sichere Cookie-Konfiguration ist eine direkte Anforderung aus Datenschutz- und Sicherheitsframeworks.

NIS2Art. 21(e) — Sicherheit bei Erwerb, Entwicklung und Wartung von Informationssystemen
DSGVOArt. 32 — Technische Maßnahmen zum Schutz personenbezogener Daten
BSIAPP.3.1 — Sichere Session-Verwaltung in Webanwendungen

Wie steht Ihre Domain bei Sichere Cookies?

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