Larapak
Ctrl K

Konsep 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.