Instalasi
Panduan langkah demi langkah, dari composer require sampai middleware
terdaftar.
Laravel Shield adalah firewall di dalam aplikasi Laravel Anda. Begitu sebuah request masuk, Shield menilainya sebelum controller sempat berjalan, lalu membuat salah satu keputusan:
| Keputusan | Arti |
|---|---|
| Izinkan | Request normal, lanjut ke aplikasi. |
| Amati | Mencurigakan, tapi dicatat dulu tanpa mengganggu pengguna. |
| Challenge | Minta pengunjung membuktikan manusia dulu (Turnstile/reCAPTCHA). |
| Blokir | Request berbahaya, ditolak. |
| Ban | IP pelaku diblokir sementara, dengan eskalasi bila mengulangi. |
Bedanya dengan WAF di depan server: Shield punya memori. Ia tahu bahwa satu IP sudah mencoba 300 URL berbeda dalam 60 detik, atau sudah tiga kali mencoba login gagal. WAF biasa hanya melihat request yang sedang lewat.
| Kebutuhan | Keterangan |
|---|---|
PHP ^8.2 |
Minimal. |
| Laravel 11, 12, atau 13 | Diuji pada Laravel 12 dan 13. |
| Database | Untuk menyimpan ban dan catatan kejadian. MySQL, MariaDB, PostgreSQL, atau SQLite. |
| Akun Cloudflare atau Google | Hanya kalau Anda memakai challenge. |
composer require ganadev/laravel-shield:^1.2.2php artisan vendor:publish --provider="Ganadev\Shield\Laravel\ShieldServiceProvider" --tag=shield-configphp artisan vendor:publish --provider="Ganadev\Shield\Laravel\ShieldServiceProvider" --tag=shield-migrationsphp artisan migrateItu dia — dalam mode bawaan, Shield hanya mencatat dan belum memblokir apa pun. Aman untuk dipasang di aplikasi yang sedang berjalan.
Langkah lengkapnya ada di Instalasi.
File sensitif. Permintaan seperti /.env, /.git/config,
/.aws/credentials, wp-config.php, file backup .php.bak, sampai file .php
yang muncul di dalam folder upload langsung ditolak.
Path traversal. Bukan hanya ../, tapi juga versi yang di-encode: %2e%2e,
dan yang di-encode dua kali %252e%252e%252f. Targetnya /etc/passwd dan
/proc/self/environ.
Serangan SQLi, XSS, dan command injection. Biasanya WAF hanya melihat
URL. Shield juga membaca body request — termasuk application/json — lalu
mencari union select, <script, php://input, eval(, dan
sebagainya.
Penelahan (enumeration). Bot yang mencoba ratusan URL berbeda dalam 60 detik, atau yang
membanjiri /login dengan ratusan percobaan.
Bot palsu. Site mana pun bisa mengirim User-Agent: Googlebot. Shield tidak
percaya; ia hanya meloloskan crawler yang IP-nya benar-benar terverifikasi, agar
Googlebot asli tetap bisa mengindeks situs Anda.
observe. Biarkan Shield mencatat 1–3 hari, lalu baca
shield:report untuk memastikan tidak ada yang
salah sasaran.php artisan schedule:run setiap menit,
supaya pembersihan otomatis tetap berjalan.Ketiganya dijelaskan di Instalasi.
Instalasi
Panduan langkah demi langkah, dari composer require sampai middleware
terdaftar.
Masalah Umum
Gejala, penyebab, dan perbaikannya.
Konfigurasi
Semua kunci konfigurasi, lengkap dengan nilai default-nya.
Powered by PT Ganadev Multi Solusi