CSRF (Cross-Site Request Forgery) = kẻ tấn công lừa trình duyệt của nạn nhân — đang đăng nhập ở site của bạn — tự gửi một request thay đổi trạng thái (chuyển tiền, đổi email). Trình duyệt tự đính kèm cookie phiên, nên server tưởng đó là hành động thật của người dùng.
Cách chống theo OWASP:
- Synchronizer token: server phát một token bí mật gắn với phiên, form phải gửi kèm; server so khớp mới chấp nhận. Site khác không đọc được token → không giả mạo được.
- SameSite cookie (Lax/Strict) chặn cookie đi kèm request cross-site.
Trong Laravel: middleware VerifyCsrfToken tự kiểm token cho mọi POST/PUT/PATCH/DELETE. Directive @csrf render một hidden input _token:
<form method="POST" action="/profile">
@csrf
<!-- => <input type="hidden" name="_token" value="..."> -->
</form>API stateless (token/JWT trong header, không dùng cookie phiên) thì không dính CSRF nên được exempt khỏi middleware này.