Skip to main content

Überblick

revolution/laravel-fetch-metadata ist ein Middleware-Paket, das die vom Browser gesendeten Sec-Fetch-*-HTTP-Header überprüft. Sie können damit anhand von Ursprung, Modus, Ziel und ob die Anfrage durch eine Nutzeraktion ausgelöst wurde, steuern, welche Requests zugelassen werden. Indem Sie die im Browser eingebauten Sicherheitsfunktionen nutzen, verhindern Sie bösartige Requests von unerlaubten Ursprüngen, ohne die Nutzererfahrung legitimer Anwender zu beeinträchtigen.
In Laravel 13 wird für die Origin-Prüfung des CSRF-Schutzes nun der Header Sec-Fetch-Site verwendet. Details siehe CSRF-Schutz.
Ausführliche Informationen zur Spezifikation von Fetch Metadata finden Sie in der MDN-Dokumentation.

Installation

Middleware-Alias registrieren

Registrieren Sie in bootstrap/app.php die Aliase der Middleware.
Sie können auch nur einige Middlewares verwenden. Die Alias-Namen können Sie beliebig anpassen.

Erläuterung der Middlewares

SecFetchSite

Der Header Sec-Fetch-Site gibt die Beziehung zwischen Herkunft der Anfrage und Ziel-Origin an. Standardmäßig werden nur same-origin und none (direkter Zugriff) erlaubt. Details siehe MDN-Dokumentation.

SecFetchMode

Der Header Sec-Fetch-Mode gibt den Modus der Anfrage an. Standardmäßig werden navigate und cors erlaubt. Details siehe MDN-Dokumentation.

SecFetchDest

Der Header Sec-Fetch-Dest gibt den Ressourcentyp des Anfrageziels an. Details siehe MDN-Dokumentation.

SecFetchUser

Der Header Sec-Fetch-User gibt an, ob die Anfrage durch eine Nutzeraktion ausgelöst wurde. Der einzige Wert ist ?1 (Nutzeraktion vorhanden).
Wenn Sie die SecFetchUser-Middleware einsetzen, werden auch Suchmaschinen-Crawler und AI-Agents blockiert. Setzen Sie sie nicht auf öffentlichen Seiten ein, die indexiert werden sollen.

Anwendungsbeispiele im Routing

Grundlegende Verwendung

Erlaubte Werte per Parameter festlegen

Mehrere Parameter angeben

Ohne Alias

Mehrere Middlewares kombinieren

Fehlerbehandlung

Wenn der Wert eines Sec-Fetch-*-Headers ungültig ist, wird eine Symfony\Component\HttpKernel\Exception\BadRequestHttpException geworfen. In bootstrap/app.php können Sie die Antwort anpassen.

Zusammenhang mit dem CSRF-Schutz

In Laravel 13 nimmt die Middleware PreventRequestForgery als ersten Schritt des CSRF-Schutzes eine Origin-Prüfung mit dem Header Sec-Fetch-Site vor. Dieses Paket nutzt Fetch-Metadata-Header darüber hinaus feingranular und stärkt die Sicherheit Ihrer Anwendung. Details siehe CSRF-Schutz.
Aktuelle Informationen finden Sie im GitHub-Repository.
Zuletzt geändert am 13. Juli 2026