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.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

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.

Versi di Packagist Status CI Butuh PHP 8.2 atau lebih baru Mendukung Laravel 11, 12, dan 13 Lisensi MIT Dokumentasi resmi


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:

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


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.

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

PHP Build Version
Package Version
Requires php Version ^8.2
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
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package ganadev/laravel-shield contains the following files

Loading the files please wait ...