CSRF-bescherming
Genereer en valideer CSRF-tokens in formulieren om vervalste verzoeken te voorkomen.
CSRF-bescherming is een gratis PHP Academy-les op CoddyKit. Dit is les 3 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject PHP Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus PHP Academy bevat in totaal 4 lessen.
Wat is CSRF?
Vervalsing van verzoeken tussen websites (CSRF) misleidt ingelogde gebruikers zodat ze ongewenste acties uitvoeren. Een schadelijke pagina verstuurt een vervalst verzoek naar je site met de actieve sessie van het slachtoffer.
Hoe CSRF werkt
Scenario: Alice is ingelogd bij bank.com. Ze bezoekt malicious.com, waar een verborgen formulier automatisch een overboekingsverzoek naar bank.com verstuurt met haar sessiecookie.
CSRF-tokens
De verdediging bestaat uit een geheim token per sessie dat in elk formulier is opgenomen. De server valideert het token bij POST/PUT/PATCH/DELETE-verzoeken — een vervalst verzoek vanaf een andere oorsprong kan het token niet lezen.
@csrf in Laravel Blade
Voeg de @csrf-richtlijn toe aan elk HTML-formulier dat gegevens wijzigt.
<form method="POST" action="/transfer">
@csrf
<input name="amount" type="number">
<button>Transfer</button>
</form>CSRF-middleware
De VerifyCsrfToken-middleware van Laravel controleert de kop X-CSRF-TOKEN of het veld _token bij alle niet-GET-verzoeken in de web-middlewaregroep.
CSRF voor AJAX
Lees voor AJAX-verzoeken het token uit de metatag en stuur het als kop mee.
// In the HTML head:
<meta name="csrf-token" content="{{ csrf_token() }}">
// In JavaScript (Axios):
axios.defaults.headers.common["X-CSRF-TOKEN"] =
document.querySelector("meta[name=csrf-token]").content;Routes uitsluiten
API-routes (met Sanctum-tokens) worden doorgaans uitgesloten van CSRF-bescherming, omdat ze in plaats van cookies tokengebaseerde authenticatie gebruiken.
<?php
// In VerifyCsrfToken $except:
protected $except = [
"api/*",
"webhooks/*",
];SameSite-cookiekenmerk
Door SameSite=Strict of Lax in te stellen op de sessiecookie, voeg je in moderne browsers een extra verdedigingslaag tegen CSRF toe.
Patroon voor dubbel verzonden cookies
Een alternatieve CSRF-verdediging voor API's: stuur het token zowel als cookie als aanvraagkop. De server controleert of ze overeenkomen — verzoeken vanaf andere oorsprongen kunnen cookies niet lezen.
CSRF in API-contexten
REST-API's die zich authenticeren met Bearer-tokens (Sanctum, JWT) zijn niet kwetsbaar voor CSRF, omdat tokens in localStorage worden opgeslagen (en niet automatisch door de browser worden meegestuurd).
CSRF testen
De testhulpmiddelen van Laravel voegen automatisch CSRF-tokens toe. Je kunt ook testen of onbeschermde POST-verzoeken worden afgewezen.
<?php
// With token:
$this->post("/transfer", ["_token" => csrf_token(), "amount" => 100]);
// Simulating CSRF attack (no token):
$this->withoutMiddleware(VerifyCsrfToken::class)->post("/transfer", [...]);Samenvatting
CSRF-bescherming vereist een verborgen token in elk formulier dat de toestand wijzigt. Laravel handelt dit automatisch af met @csrf. Voeg voor AJAX het token toe als HTTP-kop. API-routes die Bearer-tokens gebruiken, worden niet beïnvloed.
Korte controle
Hoe voeg je CSRF-bescherming toe aan een Laravel Blade-formulier?
Leer PHP met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 49
- Lessen
- 195
Veelgestelde vragen
Is de les “CSRF-bescherming” gratis?
Ja — de volledige tekst van “CSRF-bescherming” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus PHP Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus PHP Academy bevat in totaal 4 lessen.
Wat leer ik in “CSRF-bescherming”?
Genereer en valideer CSRF-tokens in formulieren om vervalste verzoeken te voorkomen. Je oefent met PHP Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met PHP Academy te beginnen?
Ervaring vooraf is niet nodig. PHP Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “CSRF-bescherming”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over PHP Academy?
Ja. Elke les over PHP Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Cross-site scripting (XSS) voorkomen
- SQL-injectie en geparametriseerde query's
- CSRF-bescherming
- Wachtwoorden veilig opslaan