Sichere Cookies in Spring Boot

Session-Cookie-Attribute in application.yml und CookieSerializer konfigurieren -- Secure, HttpOnly und SameSite für JSESSIONID.

Spring Boot · Schritt für Schritt

Sichere Cookies in Spring Boot

Sichere Cookie-Konfiguration schuetzt Session-Daten vor Diebstahl und Manipulation. In Spring Boot steuern Sie Cookie-Attribute über application.yml und den CookieSerializer. Cookies sind mit 15 von 166 Punkten relevant im Wolf-Agents Web Security Check.

Spring Boot setzt standardmaessig ein JSESSIONID-Cookie mit HttpOnly, aber ohne Secure und ohne SameSite. Für Produktion müssen Sie diese Attribute explizit konfigurieren -- entweder per application.yml oder per DefaultCookieSerializer-Bean.

1Schritt 1 von 3

Session-Cookie Attribute setzen

Konfigurieren Sie JSESSIONID mit Secure, HttpOnly und SameSite in application.yml oder per CookieSerializer Bean für maximale Kontrolle über alle Cookie-Attribute. Der CookieSerializer-Bean hat Vorrang vor der YAML-Konfiguration.

application.yml / CookieSerializerProduktiv
// application.yml -- Session-Cookie konfigurieren
server:
  servlet:
    session:
      cookie:
        secure: true
        http-only: true
        same-site: Lax
        max-age: 3600
        name: JSESSIONID

// Alternativ: CookieSerializer Bean
@Bean
public CookieSerializer cookieSerializer() {
    DefaultCookieSerializer serializer =
        new DefaultCookieSerializer();
    serializer.setCookieName("JSESSIONID");
    serializer.setUseSecureCookie(true);
    serializer.setUseHttpOnlyCookie(true);
    serializer.setSameSite("Lax");
    serializer.setCookiePath("/");
    return serializer;
}
application.yml vs. CookieSerializer

Wenn sowohl application.yml als auch ein CookieSerializer-Bean Cookie-Attribute setzen, gewinnt der Bean. Verwenden Sie nur einen der beiden Wege -- nicht beide gleichzeitig.

2Schritt 2 von 3

Verifizierung der Cookie-Attribute

Prüfen Sie den Set-Cookie-Header mit curl. Alle drei Attribute (Secure, HttpOnly, SameSite) müssen in der Response sichtbar sein. Ohne Secure wird das Cookie auch über unverschluesselte HTTP-Verbindungen gesendet.

TerminalVerifizierung
# Cookie-Header pruefen
curl -sI -c - https://ihre-domain.de | grep -i set-cookie

# Erwartete Ausgabe:
set-cookie: JSESSIONID=abc123; Path=/; Secure; HttpOnly; SameSite=Lax
Der Wolf-Agents Web Security Check prüft Cookie-Attribute automatisch und bewertet sie mit bis zu 15 Punkten.
3Schritt 3 von 3

Erweiterte Cookie-Sicherheit

Für zusaetzliche Sicherheit verwenden Sie Cookie-Prefixes (__Host- oder __Secure-) und reduzieren die Cookie-Lebensdauer auf das Minimum. __Host--Prefixed Cookies müssen Secure sein, duerfen keinen Domain-Attribut haben und der Path muss / sein.

Testen Sie Cookie-Aenderungen gruendlich. SameSite=Strict kann OAuth2-Login-Flows brechen, weil das Session-Cookie nach Cross-Origin-Redirects nicht mitgesendet wird. Verwenden Sie Lax als sicheren Standard.

Häufige Fehler bei Cookies in Spring Boot

Secure-Flag fehlt auf localhost

Das Secure-Flag verhindert Cookie-Übertragung über HTTP. Auf localhost ohne TLS wird das Cookie nicht gesetzt. Verwenden Sie server.servlet.session.cookie.secure=false in application-dev.yml und true in application-prod.yml.

SameSite=Strict bricht OAuth-Login

SameSite=Strict verhindert Cookie-Übertragung bei Cross-Origin-Redirects. OAuth2-Login-Flows (z.B. mit Keycloak oder Google) benoetigen mindestens SameSite=Lax, damit das Session-Cookie nach dem Redirect zurück zur Anwendung mitgesendet wird.

CookieSerializer und application.yml kollidieren

Wenn sowohl application.yml als auch ein CookieSerializer-Bean Cookie-Attribute setzen, gewinnt der Bean. Verwenden Sie nur einen der beiden Wege -- nicht beide gleichzeitig, da das zu unerwarteten Ergebnissen fuehrt.

Compliance-Relevanz

Sichere Cookie-Konfiguration erfuellt Anforderungen mehrerer Compliance-Frameworks.

PCI DSS 4.0Anforderung 6.5.10 -- Sichere Session-Verwaltung und Cookie-Konfiguration
NIS2Art. 21(e) -- Sicherheit bei Entwicklung und Wartung von Informationssystemen
BSIAPP.3.1 -- Session-Management mit sicheren Cookie-Attributen

Wie steht Ihre Domain bei Sichere Cookies?

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