CodeIgniter 4 Shieldv1.2.x
Perintah Spark
Shield menyertakan enam perintah Spark. Semuanya opsional, dan tidak ada satu pun yang perlu Anda jalankan supaya Shield bekerja.
Ringkasan
Section titled “Ringkasan”| 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. |
shield:health
Section titled “shield:health”php spark shield:healthMemeriksa koneksi database, cache, mesin Shield, konfigurasi trusted proxy
(proxyIPs), dan resolusi DNS untuk verifikasi crawler. Jalankan setiap kali
Shield dipasang, dan lagi setiap kali ada masalah.
Perintah ini tidak memeriksa konfigurasi admin. Peringatan
adminAuthorize hanya tersedia di endpoint admin GET /{prefix}/health.
shield:report
Section titled “shield:report”php spark shield:reportMencetak ringkasan kejadian keamanan. Ini perintah yang paling sering Anda
perlu saat menyetel mode.
Untuk satu host saja:
php spark shield:report --host=toko-online.testDari output ini Anda bisa melihat total event, jumlah BLOCK_REQUEST, dan rule
yang paling sering memicu. Perintah ini tidak menghitung challenge atau
pass rate challenge.
Kalau --host tidak dipakai, semua host ikut dirangkum. Berguna saat satu
server menjalankan banyak aplikasi dengan app_id berbeda.
shield:rules:list
Section titled “shield:rules:list”php spark shield:rules:listMenampilkan rule yang benar-benar dimuat aplikasi Anda. Perintah ini tidak
mencetak ruleVersion; yang tampil adalah ID, category, matcher, severity,
skor, immediate-ban, dan state. Tambahkan --disabled untuk ikut menampilkan
rule berstatus disabled (jika ada):
php spark shield:rules:list --disabledPerintah ini berguna untuk memastikan rule pack yang dipilih
(rulesPacksInjection, rulesPacksWordpress) benar-benar dimuat.
shield:prune
Section titled “shield:prune”php spark shield:pruneMenghapus event yang lebih lama dari retentionDays, ban berstatus released
yang sudah melewati expires_at, dan semua baris berstatus expired.
Tidak ada scheduler bawaan di CodeIgniter, jadi host Anda yang menjalankan perintah ini secara berkala. Pastikan cron berikut ada:
* * * * * cd /path/ke/aplikasi && php spark shield:prune >> /dev/null 2>&1Umur retensi bisa diubah per pemanggilan:
php spark shield:prune --days=7shield:release
Section titled “shield:release”php spark shield:release 203.0.113.10Melepas ban yang sedang aktif untuk satu IP. Tambahkan alasannya supaya tercatat:
php spark shield:release 203.0.113.10 --reason="pelanggan salah ketik"shield:replay
Section titled “shield:replay”php spark shield:replay storage/shield/corpus.jsonMenjalankan korpus JSON atau ekspor tabel security_events melalui
DefaultRules (dan opsional wordpress), lalu melaporkan tingkat deteksinya.
Perintah ini tidak memakai custom rule dari app/Config/Shield.php.
Untuk menguji dengan paket WordPress aktif selama pemutaran:
php spark shield:replay storage/shield/corpus.json --pack-wordpressNilai --min-rate bawaannya 0.98, artinya 98 persen entri dengan
expected=block harus terdeteksi. Exit code juga menjadi 1 jika ada
false positive (entri expected=allow yang justru diblokir). Ini berguna di CI:
php spark shield:replay tests/corpus.json || exit 1Turunkan --min-rate kalau korpus Anda memang tidak lengkap:
php spark shield:replay tests/corpus.json --min-rate=0.90Urutan pemakaian yang masuk akal
Section titled “Urutan pemakaian yang masuk akal”- Setelah memasang:
shield:health. - Mode
observeselama beberapa hari: bacashield:report. - Sebelum naik ke
enforce:shield:rules:listuntuk memastikan konfigurasi Anda aktif. - Setiap naik versi:
shield:replaydengan korpus Anda sendiri. - Ada keluhan pengguna terblokir:
shield:release.
Powered by PT Ganadev Multi Solusi