Lewati ke konten

Laravel Shieldv1.2.x

Perintah Artisan

Shield mendaftarkan enam perintah Artisan. Semuanya opsional, dan tidak ada satu pun yang perlu Anda jalankan supaya Shield bekerja.

Perintah Untuk apa
shield:health Memeriksa apakah semua komponen siap. Jalankan pertama kali.
shield:report Merangkum kejadian keamanan. Baca setiap hari saat tuning.
shield:rules:list Menampilkan rule yang aktif beserta skor dan severity.
shield:prune Menghapus kejadian lama dan ban yang sudah kedaluwarsa.
shield:release Melepas ban satu IP.
shield:replay Menguji ulang korpus serangan terhadap rule saat ini.
Terminal window
php artisan shield:health

Memeriksa koneksi database, cache, mesin Shield, konfigurasi trusted proxy, dan resolusi DNS untuk verifikasi crawler. Jalankan perintah ini setiap kali Shield dipasang, dan lagi setiap kali ada masalah.

Keluarannya juga memperingatkan kalau admin.enabled aktif tanpa authorize, atau kalau terindikasi forward header tanpa trusted proxy.

Terminal window
php artisan shield:report

Mencetak ringkasan kejadian keamanan. Ini perintah yang paling sering Anda perlu saat menyetel mode.

Untuk satu host saja:

Terminal window
php artisan shield:report --host=toko-online.test

Dari output ini Anda bisa melihat:

  • rule mana yang paling sering memicu,
  • berapa challenge yang jadi blokir,
  • apakah ada IP asli yang ikut kena.

Kalau --host tidak dipakai, semua host ikut dirangkum. Berguna saat satu server menjalankan banyak aplikasi dengan app_id berbeda.

Terminal window
php artisan shield:rules:list

Menampilkan rule yang benar-benar dimuat aplikasi Anda, beserta versi signature-nya. Incluye rule yang dinonaktifkan lewat enabled: false:

Terminal window
php artisan shield:rules:list --disabled

Perintah ini berguna ketika Anda ingin memastikan override di config/shield.php benar-benar dipakai, bukan sekadar tersimpan di file.

Terminal window
php artisan shield:prune

Menghapus kejadian yang sudah melewati logging.retention_days, lalu membersihkan ban yang sudah kedaluwarsa.

Shield menjadwalkan perintah ini sendiri setiap hari, jadi Anda tidak perlu mendaftarkannya di app/Console/Kernel.php. Tapi jadwal itu hanya jalan kalau Laravel benar-benar menjalankan scheduler. Pastikan cron berikut ada:

Terminal window
* * * * * cd /path/ke/aplikasi && php artisan schedule:run >> /dev/null 2>&1

Umur retensi bisa diubah per pemanggilan:

Terminal window
php artisan shield:prune --days=7
Terminal window
php artisan shield:release 203.0.113.10

Melepas ban yang sedang aktif untuk satu IP. Tambahkan alasannya supaya tercatat:

Terminal window
php artisan shield:release 203.0.113.10 --reason="pelanggan salah ketik"
Terminal window
php artisan shield:replay storage/shield/corpus.json

Menjalankan korpus JSON atau ekspor security_events melalui rule yang sekarang aktif, lalu melaporkan tingkat deteksinya. Ini cara Anda menguji perubahan rule tanpa menyentuh produksi.

Untuk menguji dengan paket WordPress aktif:

Terminal window
php artisan shield:replay storage/shield/corpus.json --pack-wordpress

Keluarannya disertai kode keluar yang mengikuti tingkat deteksi minimum. Nilai bawaannya 0.98, artinya 98 persen payload harus terdeteksi agar exit code-nya berhasil. Ini berguna di CI:

Terminal window
php artisan shield:replay tests/corpus.json || exit 1

Turunkan --min-rate kalau korpus Anda memang tidak lengkap:

Terminal window
php artisan shield:replay tests/corpus.json --min-rate=0.90
  1. Setelah memasang: shield:health.
  2. Mode observe selama beberapa hari: baca shield:report.
  3. Sebelum naik ke challenge: shield:rules:list untuk memastikan override Anda aktif.
  4. Setiap naik versi: shield:replay dengan korpus Anda sendiri.
  5. Ada keluhan pengguna terblokir: shield:release.

Perintah yang tidak ada di daftar ini memang tidak ada di Shield. Kalau dokumentasi Anda menyebut perintah lain, jangan percaya begitu saja.

Powered by PT Ganadev Multi Solusi