Cache-Control für Laravel konfigurieren

Schritt-für-Schritt-Anleitung: Cache-Control in Laravel einrichten — mit Middleware-Code zum Kopieren und Best Practices.

Laravel · Schritt für Schritt

Cache-Control in Laravel

Cache-Control steuert, wie Browser und Proxies Responses cachen. Für sensible Seiten (Dashboard, Account) ist no-store Pflicht — damit werden keine Kopien im Cache gespeichert. Mit 8 von 166 Punkten im Web Security Check.

Laravel bietet zwei Ansätze: eine eigene Middleware für sensible Routes oder die eingebaute cache.headers Route-Middleware. Für statische Assets (CSS, JS, Bilder) konfigurieren Sie lange Cache-Zeiten über den Webserver.

1 Schritt 1 von 3

Cache-Control in der Middleware konfigurieren

Fügen Sie den Header in Ihrer SecurityHeaders-Middleware hinzu. Der Header wird bei jedem Response automatisch gesetzt.

app/Http/Middleware/CacheControl.php Produktiv
// app/Http/Middleware/CacheControl.php
public function handle($request, Closure $next)
{
    $response = $next($request);

    if ($request->is('dashboard/*', 'api/*', 'account/*')) {
        $response->headers->set('Cache-Control',
            'no-store, no-cache, must-revalidate');
    }

    return $response;
}

// Oder per Route-Gruppe:
Route::middleware('cache.headers:no_store;no_cache;must_revalidate')
    ->group(function () {
        Route::get('/dashboard', [DashboardController::class, 'index']);
    });
2 Schritt 2 von 3

Konfiguration verifizieren

Prüfen Sie sensible Seiten mit curl -sI https://ihre-domain.de/dashboard | grep -i cache. Der Header muss no-store enthalten.

Nutzen Sie den Wolf-Agents Web Security Check für eine vollständige Prüfung aller 8 Punkte dieses Headers.
3 Schritt 3 von 3

Häufige Fehler

no-store vs no-cache

no-cache erlaubt Caching, fordert aber Revalidierung. no-store verbietet Caching vollständig. Für sensible Daten immer no-store verwenden.

Statische Assets ohne Cache

Setzen Sie lange Cache-Zeiten für Vite-generierte Assets (sie haben Content-Hashes im Dateinamen). Der Webserver (Nginx) ist dafür verantwortlich, nicht Laravel.

Compliance-Relevanz

OWASP ASVS — V14.4.1 fordert no-store für Responses mit sensiblen Daten.
PCI DSS 4.0 — Requirement 6.5.3 fordert, dass sensible Daten nicht in Browser-Caches gespeichert werden.

Wie steht Ihre Domain bei Cache-Control?

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