Untuk mencegah SQL injection di CodeIgniter, Anda bisa menggunakan fitur query binding yang disediakan oleh CodeIgniter. Query binding adalah sebuah fitur yang memungkinkan Anda untuk mengikat nilai-nilai yang diberikan oleh user ke dalam query SQL Anda. Dengan demikian, kode berbahaya yang dapat menyebabkan SQL injection tidak akan dapat masuk ke dalam query SQL Anda.

Berikut ini adalah contoh kode yang menggunakan query binding untuk mencegah SQL injection di CodeIgniter:

// Dapatkan input user
$username = $this->input->post('username');
$password = $this->input->post('password');

// Buat query SQL menggunakan query binding
$query = $this->db->query("SELECT * FROM users WHERE username = ? AND password = ?", array($username, $password));

// Jalankan query
$result = $query->result();

Dalam mencegah SQL injection di CodeIgniter, ada beberapa langkah yang dapat Anda lakukan:

  1. Gunakan fitur perlindungan database bawaan CodeIgniter, seperti kelas active record dan fitur query binding, yang dapat membantu mencegah serangan SQL injection.
  2. Selalu escape input user saat membangun query SQL untuk mencegah attacker menyuntikkan kode berbahaya ke dalam query Anda. CodeIgniter menyediakan beberapa fungsi helper, seperti $this->db->escape() dan $this->db->escape_str(), yang dapat Anda gunakan untuk escape input user.
  3. Gunakan prepared statements saat mengeksekusi query SQL untuk mencegah attacker menyuntikkan kode berbahaya ke dalam query Anda. CodeIgniter menyediakan dukungan untuk prepared statements melalui method $this->db->query(), yang memungkinkan Anda untuk menentukan placeholder dalam query SQL Anda dan bind value ke dalam placeholder tersebut saat runtime.
  4. Update dan patch secara teratur software database dan web server Anda untuk memastikan bahwa mereka terlindungi dari kerentanan dan eksploitasi terbaru. Ini akan membantu mencegah attacker mengambil keuntungan dari kerentanan yang diketahui di dalam sistem Anda.
  5. Implementasikan aturan validasi dan sanitisasi input yang ketat untuk mencegah attacker menyuntikkan kode berbahaya ke dalam web application Anda. CodeIgniter menyediakan beberapa fungsi validasi dan sanitisasi bawaan yang dapat Anda gunakan untuk memvalidasi dan mensanitasi input user.

Dengan mengikuti langkah-langkah ini, Anda dapat membantu melindungi web application CodeIgniter Anda dari serangan SQL injection dan menjaga data user Anda tetap aman.