Middleware & Proteksi CSRF
Pencegat request HTTP, validasi token keamanan CSRF, dan pembatasan laju (throttling).
Oktober 2026 / v1.1.0Konsep Middleware
Middleware menyediakan mekanisme penyaringan (filtering) permintaan HTTP sebelum mencapai controller. Middleware umumnya digunakan untuk memeriksa status autentikasi, memvalidasi token CSRF, menyaring input berbahaya, dan membatasi frekuensi request (rate limiting).
Membuat Middleware Baru
Gunakan perintah generator CLI untuk membuat berkas filter middleware baru di folder jeroan/Pencegat/:
# Dialek Ngapak Asli
ngapakin gawe:pencegat VerifikasiUsia
# Atau menggunakan alias standar
ngapakin make:middleware VerifikasiUsia
Struktur berkas middleware baru (jeroan/Pencegat/VerifikasiUsia.ngpk):
# Pencegat HTTP VerifikasiUsia
gawe tangani(req, res, sabanjure)
# Logika penyaringan request
# balekna res.redirect("/login") jika tidak valid
balekna sabanjure(req, res)
rampung
Proteksi CSRF (Cross-Site Request Forgery)
Larapak secara otomatis menyalakan perlindungan CSRF untuk seluruh rute non-idempotent (POST, PUT, PATCH, DELETE).
Untuk menyertakan token keamanan ke dalam formulir HTML, cukup sertakan directive @csrf:
<form action="/kontak/kirim" method="POST">
@csrf
<label>Pesan Anda:</label>
<textarea name="pesan"></textarea>
<button type="submit">Kirim Pesan</button>
</form>
Directive @csrf akan otomatis merender input hidden:
<input type="hidden" name="_token" value="d2a71f8b4...">
Untuk panggilan AJAX/Fetch dari JavaScript, Anda dapat menyertakan token di header HTTP X-CSRF-TOKEN.
Rate Limiting (Throttle Middleware)
Untuk mencegah serangan brute-force atau scraping berlebihan pada endpoint publik atau login, pasang middleware Throttle:
# dalan/api.ngpk
rute.post("/api/login", "AuthController@login").lewat(["throttle:5,1"])
Format throttle:max_attempts,decay_minutes membatasi klien maksimal 5 percobaan dalam kurun waktu 1 menit. Jika terlampaui, sistem otomatis mengembalikan status HTTP 429 Too Many Requests.