Lewati ke konten

CodeIgniter 4 Shieldv1.2.x

Kompatibilitas CodeIgniter 4

Halaman ini menjelaskan posisi versi CodeIgniter 4 (CI4) terhadap CodeIgniter 4 Shield. Tujuannya sederhana: Anda tahu versi mana yang menjadi baseline, apa yang berubah di tiap minor, dan kapan harus upgrade sebelum memasang Shield.

Hal Nilai
Baseline dokumentasi CodeIgniter 4.7.5
Constraint Composer paket codeigniter4/framework: ^4.3
PHP minimum 8.2
Status 4.7.5 Baseline yang diuji dan didokumentasikan
Status 4.3–4.7.4 Legacy; kompatibel secara kode, bukan baseline pengujian
Status <= 4.2 Tidak didukung
CodeIgniter 4 PHP Status Catatan untuk Shield
4.7.5 8.2+ Baseline Versi yang dirujuk seluruh contoh di dokumentasi ini.
4.7.0–4.7.4 8.2+ Legacy Masih dalam seri 4.7, tetapi lewati patch keamanan 4.7.5. Upgrade disarankan.
4.6.x 8.2+ Legacy Struktur filter berubah; registrasi default tetap memakai filter global, dan pola required['before'] + ShieldGateFilter juga didukung.
4.5.x 8.2+ Legacy Urutan filter berubah dan required filter diperkenalkan; pola gate memanfaatkannya, sedangkan registrasi default tetap global.
4.4.x 8.2+ Legacy proxyIPs wajib array asosiatif; konfigurasi routing pindah ke Config/Routing.php.
4.3.x 8.2+ Legacy minimum Batas bawah constraint Composer. Paket tetap membutuhkan PHP 8.2.
<= 4.2 — Tidak didukung Banyak perbedaan API dan konfigurasi; jangan pasang Shield di versi ini.
  • Config\App::$proxyIPs sudah berupa array asosiatif (CIDR => header). Aplikasi yang berasal dari <= 4.2 harus mengubah format lama menjadi array.
  • CI4 4.4 memindahkan pengaturan routing dari Config/Routes.php ke Config/Routing.php. Shield tidak meminta Anda menyalin route apa pun.
  • Filter firewall didaftarkan oleh provider ke globals['before'] secara default. Untuk perlindungan sebelum router, tambahkan pola required['before']
  • CI4 4.5 memperkenalkan required filters dan mengubah urutan eksekusi filter. Registrasi bawaan paket tetap filter global biasa; panduan instalasi memakai pola required['before'] + gate secara default.
  • Method HTTP ditulis kapital (GET, POST). Route challenge bawaan paket sudah memakai bentuk ini.
  • CI4 4.6 mengubah struktur internal class Filters. Shield tidak meng-extend class tersebut, jadi tidak ada kode aplikasi yang perlu diubah.
  • PHP minimum 8.2 dan Config\Migrations::$lock tersedia. Jalankan migrasi seperti biasa dengan php spark migrate --all.
  • proxyIPs tetap array asosiatif. Jangan memakai '*'.
  • Route challenge dan admin berasal dari Config/Routes.php paket; jangan menduplikasinya di app/Config/Routes.php.
  • Jika memakai worker mode, uji ulang perilaku cache dan service di staging sebelum produksi.
  • Provider didaftarkan sekali di app/Config/Events.php pada event pre_system untuk service bersama, alias filter, dan penempatan default di globals['before']. Panduan instalasi memakai pola required gate secara default; tanpa gate, filter berjalan global setelah router.
  • Perintah Spark ditemukan otomatis lewat pemindaian namespace PSR-4 package. Tidak perlu mendaftarkan command secara manual.
  • Migrasi ditemukan dari namespace paket. Cukup jalankan php spark migrate --all.
  • Route challenge dimuat dari package routes. Method yang dipakai adalah GET untuk halaman challenge dan POST untuk verifikasi.
  • Konfigurasi dibaca lewat config('Shield'); jika aplikasi tidak punya app/Config/Shield.php, paket memakai config bawaannya.
  1. Backup database dan .env.
  2. Upgrade PHP ke 8.2 atau lebih baru.
  3. Upgrade CodeIgniter ke 4.7.5, lalu jalankan composer update.
  4. Pastikan Config\App::$proxyIPs berupa array asosiatif.
  5. Hapus route challenge manual dari app/Config/Routes.php jika pernah ditambahkan; route paket sudah otomatis.
  6. Jalankan php spark migrate --all.
  7. Jalankan php spark shield:health dan php spark shield:rules:list.
  8. Uji challenge, blokir, dan release ban di staging sebelum produksi.
  • Kombinasi patch 4.3–4.7.4 tidak diuji satu per satu dalam dokumentasi ini.
  • Worker mode CI4 4.7 belum menjadi jalur pengujian utama Shield.
  • Perbedaan perilaku patch keamanan di 4.7.5 tidak dirinci di sini; baca changelog CodeIgniter untuk detailnya.

Jika aplikasi Anda masih di bawah 4.7.5, gunakan halaman ini sebagai panduan upgrade, bukan sebagai jaminan bahwa semua perilaku runtime identik.

Powered by PT Ganadev Multi Solusi