Download the PHP package ganadev/laravel-shield without Composer
On this page you can find all versions of the php package ganadev/laravel-shield. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package laravel-shield
Laravel Shield
Firewall aplikasi untuk Laravel — memeriksa setiap permintaan yang masuk dan memblokir yang berbahaya sebelum sampai ke aplikasi Anda.
Apa ini?
Setiap aplikasi web punya dua pintu masuk. Satu untuk orang yang memang memakai aplikasi Anda, dan satu lagi yang terbuka untuk siapa saja di internet. Pintu kedua itulah yang berbahaya — setiap permintaan datang dari mana saja, dan ada orang yang sengaja membuatnya berbahaya.
Laravel Shield menjadi penjaga pintu kedua tersebut. Dia memeriksa setiap permintaan, lalu:
- Meneruskan permintaan biasa, seperti tidak ada apa-apa. Pengunjung asli tidak pernah terganggu.
- Meminta bukti ketika pola perilaku mencurigakan tapi belum tentu berbahaya — misalnya dengan captcha.
- Memblokir permintaan yang jelas merupakan serangan, dan mencatat semua kejadiannya ke database.
Bagian pentingnya: Shield bukan pengganti sistem keamanan Anda sendiri. Filter SQL, validasi input, middleware Auth, dan proteksi CSRF tetap milik Anda. Shield hanya menambahkan satu lapisan lagi di depannya.
Di mana posisinya?
Shield sebaiknya berada di belakang firewall yang lebih umum, bukan sebagai pengganti. Kalau hosting Anda sudah punya ModSecurity, keduanya saling melengkapi.
Yang dilindungi
- Percobaan membuka file rahasia. Bot pemindai mencari
.env,.git/config,wp-config.php, dan kredensial AWS untuk membocorkan password dan API key. - Path traversal. Termasuk varian yang di-encode tiga kali seperti
%252e%252e/, plus/proc/self/environdan/etc/passwd. - Percobaan remote code execution. Termasuk
php://input,auto_prepend_file, file backup, dan file PHP yang disembunyikan di folder gambar atau upload. - SQL injection, XSS, LFI, dan command injection — bukan hanya di alamat URL, tapi juga di isi request.
- Bot yang mengaku-ngaku. Bot resmi seperti Googlebot dan Bingbot dikenali lewat pemeriksaan DNS, jadi website Anda tetap bisa dibaca mesin pencari. Bot palsu yang hanya mengaku-ngaku dicatat dan diblokir.
- Pengepungan endpoint login. Terlalu banyak percobaan login dari satu alamat IP akan memicu challenge, sehingga brute-force tidak berhasil.
- Penelusuran file. Deretan permintaan yang berakhir 404 di seluruh situs, plus aktivitas otomatis dengan User-Agent mencurigakan seperti
sqlmapataunikto.
Instalasi
Publish konfigurasi dan migration, lalu jalankan:
Package ini menarik ganadev/shield-core secara otomatis, jadi tidak perlu memasangnya terpisah.
Daftarkan middleware
Buka bootstrap/app.php, lalu daftarkan middleware Shield secara global — posisinya menentukan segalanya:
append (bukan prepend atau alias route) penting karena Shield harus berjalan sebelum middleware lain, setelah IP klien asli dibaca. Ada satu aturan lagi: middleware ini harus berada sebelum EncryptCookies, dan Shield akan memberi tahu lewat log kalau posisinya bergeser.
Kalau hanya ingin melindungi sebagian route, daftarkan sebagai middleware bernama: $middleware->alias(['shield' => SecurityFirewallMiddleware::class]) lalu pakai ->middleware('shield') di route yang diperlukan.
Sebelum dipakai di produksi
Dua hal ini paling sering terlewat, dan keduanya membuat Shield tidak bekerja seperti yang Anda kira.
1. Harus ada trustProxies kalau di belakang proxy
Kalau aplikasi Anda berada di belakang Cloudflare, reverse proxy, atau load balancer, dan trustProxies belum dikonfigurasi, maka setiap pengunjung akan terlihat datang dari satu alamat IP yang sama — yaitu IP proxy. Akibatnya rate limit per-IP jadi tidak berguna, dan ban tidak pernah kena pada orang yang seharusnya.
Di bootstrap/app.php:
*Jangan pernah pakai `at: ''`.** Bentuk itu mempercayai semua orang, sehingga penyerang bisa memalsukan alamat IP pada header dan lolos dari ban.
Kalau Anda tidak memakai Cloudflare, ganti dengan CIDR proxy Anda sendiri. Daftar resmi Cloudflare ada di https://www.cloudflare.com/ips/.
Cek apakah konfigurasi ini sudah benar:
2. Mode default hanya mencatat, belum memblokir
Supaya tidak mengagetkan siapa pun saat pertama dipasang, Shield mulai dalam mode observe: keputusan tetap dihitung dan dicatat, tapi request diteruskan seperti biasa. Jadi secara bawaan, Shield belum memblokir apa pun.
Agar blokir benar-benar dijalankan, atur:
Cara paling aman adalah naikkan bertahap. Biarkan di observe beberapa hari, pantau php artisan shield:report untuk melihat apa yang sebenarnya terjadi, lalu naikkan ke enforce saat sudah yakin tidak ada pengguna sah yang ikut kena.
Konfigurasi
Semua opsi ada di satu file: config/shield.php, dan setiap key-nya sudah diberi komentar penjelasan dalam bahasa Indonesia. Mulai dari situ — tidak perlu mengatur semuanya di awal.
Beberapa yang paling sering diubah:
| Kunci | Untuk apa |
|---|---|
mode |
observe (catat saja) atau enforce (jalankan semua keputusan) |
behavior.sensitive_paths |
Path yang memicu deteksi brute-force, default /login dan /admin/login |
rules.skip_paths |
Path yang bebas dari pemeriksaan body dan deteksi perilaku — berguna untuk endpoint M2M atau webhook yang isinya teks bebas |
allowlist |
Host, IP, atau path yang selalu lolos. Hati-hati, ini benar-benar melewati semua proteksi |
challenge.driver |
turnstile (default), recaptcha, atau null (untuk testing) |
bots.mode |
observe (default, aman untuk SEO), challenge, atau off |
Perintah CLI
| Perintah | Fungsi |
|---|---|
shield:health |
Cek apakah semua komponen siap dipakai |
shield:report |
Ringkasan kejadian keamanan |
shield:rules:list |
Daftar aturan yang aktif beserta skornya |
shield:replay |
Jalankan ulang log kejadian nyata untuk menguji deteksi |
shield:release |
Lepas ban satu alamat IP |
shield:prune |
Bersihkan kejadian lama sesuai logging.retention_days |
shield:prune sudah dijadwalkan otomatis setiap hari, tapi host Anda tetap wajib menjalankan cron berikut:
Ada juga panel admin opsional untuk melihat laporan, mengelola ban, dan menelusuri event. Panel ini default-nya nonaktif, karena halaman tersebut menampilkan reputasi pengguna — dan wajib dibatasi dengan izin admin.authorize kalau diaktifkan.
Dokumentasi
Dokumentasi lengkap ada di shield.ganadev.com:
| Halaman | Isi |
|---|---|
| Instalasi | Setup langkah demi langkah |
| Konfigurasi | Semua kunci config beserta artifaknya |
| Aturan | Aturan bawaan dan paket injection |
| Perilaku & Bot | Verifikasi crawler dan dampaknya ke SEO |
| Challenge & Trusted | Cara kerja captcha dan cookie trusted |
| Ban & Reputasi | Durasi ban, eskalasi, dan riwayat |
| Admin & CLI | Semua perintah Artisan |
| Upgrade ke v1.2.2 | Panduan naik versi dari 1.0.x |
Open Source
Laravel Shield adalah proyek open source berlisensi MIT. Kode dan dokumentasinya bebas dibaca, diubah, dan dipakai ulang.
Kami terbuka pada masukan dan revisi apa pun — laporan bug, usulan fitur, perbaikan dokumentasi, sampai pull request. Semua itu membantu Shield menjadi lebih baik untuk semua orang, dan tidak ada yang perlu izin lebih dulu.
- Laporkan bug lewat Issues
- Usulkan fitur lewat Discussions
- Temukan celah keamanan lewat Security Advisory, jangan lewat Issues publik
- Koreksi dokumentasi lewat pull request langsung — sekecil apa pun tetap berharga
Sebelum contribute, jalankan dulu:
Ketiganya harus hijau sebelum pull request dikirim.
Lisensi
MIT — © 2026 Ganadev / PT Ganadev Multi Solusi
All versions of laravel-shield with dependencies
ganadev/shield-core Version ^1.2.1
illuminate/contracts Version ^11.0|^12.0|^13.0
illuminate/http Version ^11.0|^12.0|^13.0
illuminate/support Version ^11.0|^12.0|^13.0