Lewati ke konten

CodeIgniter 4 Shieldv1.2.x

Aturan (Rules)

Aturan (rules) adalah pengetahuan Shield tentang serangan. Tiap rule mencocokkan pola tertentu — union select, <script, /.env, dan seterusnya — lalu memberi skor bila cocok. Rule-nya sendiri hidup di Shield Core; paket CodeIgniter 4 hanya memuatnya.

Secara bawaan Shield mengaktifkan paket aturan injection:

Paket Default Isi
injection aktif SQL injection, XSS, command injection, LFI, path traversal, file sensitif, RCE (php://input, auto_prepend_file).
wordpress nonaktif Pola serangan khas WordPress (wp-config.php, xmlrpc, plugin berbahaya).

Aktifkan paket WordPress di app/Config/Shield.php:

public bool $rulesPacksWordpress = true;

Perhatikan bahwa rule wordpress bisa menambahkan false positive di situs yang tidak memakai WordPress — karena pola .php di dalam folder upload ikut dipantau.

Terminal window
php spark shield:rules:list

Menampilkan rule yang benar-benar dimuat aplikasi Anda beserta matcher, severity, skor, dan status. Tambahkan --disabled kalau ingin melihat rule yang dimuat tapi dinonaktifkan:

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

Ini cara terbaik memastikan perubahan konfigurasi benar-benar terpakai, bukan sekadar tersimpan di file.

Terminal window
php spark shield:replay storage/shield/corpus.json

shield:replay menjalankan ulang korpus serangan (JSON) lewat DefaultRules dan rule pack opsional, lalu melaporkan tingkat deteksinya. Ini bukan pengujian custom rule aplikasi. Baca Perintah Spark untuk opsi lengkapnya.

Adapter CodeIgniter 4 tidak memakai rules.definitions dari config. Rule selalu dirakit dari DefaultRules ditambah rule pack (injection, wordpress), jadi menambah rule custom lewat app/Config/Shield.php tidak didukung saat ini.

Yang bisa Anda lakukan:

  • menyalakan atau mematikan rule pack WordPress;
  • mengubah ambang skor, mode, dan allowlist;
  • memakai shield:rules:list untuk memastikan rule pack yang dimuat.

Anatomi rule dan daftar rule ada di dokumentasi Shield Core, tetapi jangan mengikuti contoh penambahan custom rule untuk adapter CI4 sampai dukungan itu tersedia.

Rule dengan bobot critical (mis. sensitive.env, traversal.etcpasswd, traversal.proc) menghasilkan blok keras (halaman shield/blocked, kode responseCode default 404) di mode challenge dan enforce. Rule ini tidak diturunkan menjadi challenge dan tidak dilewati trusted cookie.

Di mode observe, semua keputusan tetap dicatat sebagai OBSERVE; signature critical tidak memblokir sampai Anda menaikkan mode. Ini berbeda dari skor biasa yang bisa berujung challenge.

  1. Rule bawaan sudah cukup untuk perlindungan awal.
  2. Aktifkan rulesPacksWordpress hanya kalau situs Anda memakai WordPress.
  3. shield:rules:list membuktikan rule pack yang Anda atur benar-benar dimuat.
  4. shield:replay menguji korpus terhadap DefaultRules, bukan custom rule app.
  5. Anatomi rule lengkap ada di dokumen Shield Core, tetapi custom rule belum didukung adapter CI4.

Powered by PT Ganadev Multi Solusi