Skip to main content

Overzicht

revolution/laravel-fetch-metadata is een pakket met beveiligingsmiddleware die de Sec-Fetch-* HTTP-headers valideert die browsers versturen. Je kunt bepalen welke requests worden toegestaan op basis van de herkomst, modus, bestemming en of er een gebruikersactie aan ten grondslag ligt. Door gebruik te maken van beveiligingsfuncties die in de browser zijn ingebouwd, kun je kwaadaardige requests van ongeautoriseerde origins blokkeren zonder de ervaring van legitieme gebruikers te verstoren.
In Laravel 13 wordt de Sec-Fetch-Site-header gebruikt voor de Origin-validatie van de CSRF-bescherming. Zie CSRF-bescherming voor meer details.
Zie de MDN-documentatie voor de volledige Fetch Metadata-specificatie.

Installatie

Middleware-aliassen registreren

Registreer de middleware-aliassen in bootstrap/app.php.
Je kunt ook slechts een deel van de middleware gebruiken. De aliasnamen kun je naar wens aanpassen.

Uitleg van de middleware

SecFetchSite

De Sec-Fetch-Site-header geeft de relatie aan tussen de herkomst van het request en de origin van het doel. Standaard worden alleen same-origin en none (directe toegang) toegestaan. Zie de MDN-documentatie voor meer details.

SecFetchMode

De Sec-Fetch-Mode-header geeft de modus van het request aan. Standaard worden navigate en cors toegestaan. Zie de MDN-documentatie voor meer details.

SecFetchDest

De Sec-Fetch-Dest-header geeft het resourcetype van de bestemming van het request aan. Zie de MDN-documentatie voor meer details.

SecFetchUser

De Sec-Fetch-User-header geeft aan of het request door een gebruikersactie is gestart. De enige waarde is ?1 (gestart door gebruikersactie).
Als je de SecFetchUser-middleware gebruikt, worden ook crawlers van zoekmachines en AI-agents geblokkeerd. Gebruik deze middleware niet op openbare pagina’s die geïndexeerd moeten worden.

Voorbeelden in routing

Basisgebruik

Toegestane waarden opgeven via parameters

Meerdere parameters opgeven

Zonder alias

Meerdere middleware combineren

Foutafhandeling

Als de waarde van een Sec-Fetch-*-header ongeldig is, wordt een Symfony\Component\HttpKernel\Exception\BadRequestHttpException gegooid. Je kunt de response aanpassen in bootstrap/app.php.

Relatie met CSRF-bescherming

In Laravel 13 voert de PreventRequestForgery-middleware als eerste stap van de CSRF-bescherming een Origin-validatie uit op basis van de Sec-Fetch-Site-header. Met dit pakket kun je de Fetch Metadata-headers op een fijnmaziger niveau inzetten en de beveiliging van je applicatie verder versterken. Zie CSRF-bescherming voor meer details.
Zie de GitHub-repository voor de meest recente informatie.
Laatst gewijzigd op 6 september 2026