Tips Menghindari SQL Injection di PHP


Tips Menghindari SQL Injection di PHP

 Hasil gambar untuk sql injection


Situs Web dinamis yang memerlukan database untuk menyimpan(record) ataupun mengambil/meminta(query) data perlu di amankan dari aksi - aksi kejahatan dunia cyber, salah satunya tindak kejahatan dengan penerapan SQL injection, yaitu penyisipan Bad Query  yang tidak diinginkan pada program atau kode yang kita tulis. sehingga database memberikan respon balik yang menimbulkan perubahan baik mendasar atau secara frontal pada program atau kode yang di tulis.   Situs Web sangat rentan dengan tindak kejahatan menggunakan metode SQL Injection. Jika bad Query yang disisipkan, dan situs web kita memberikan respon balik sesuai dengan permintaan bad query, maka situs web tersebut telah menjadi korban Website Hacking yang dilakukan oleh hacker ataupun cracker. Untuk menghindari SQL Injection, yang harus diprioritaskan adalah perbaikan kode-kode SQL pada program dalam hal ini  situs web dinamis yang telah dibuat.

salah satu cara perbaikan yang diperlukan adalah  beralih menggunakan PHP Data Object, bagi programmer web PHP yang terbiasa menggunakan ekstensi MySQL ataupun MySQLi untuk mengelola database,sudah saatnya beralih ke PHP Data Object(PDO). Apa itu PDO ?.  PDO adalah ekstensi PHP yang berfungsi sebagai data-access abstraction layer , maksudnya apapun sistem database yang kita gunakan, fungsi atau method untuk meminta(query) maupun mengambil data tetap sama(php.net). sehingga kita dapat berpindah - pindah sistem database tanpa khawatir menata ulang kode SQL yang telah ditulis, yang diperlukan hanya lah mengubah string koneksi sesuai dengan sistem database yang kita gunakan.

berikut contoh penggunaan PDO dengan database MySQL:

//contoh koneksi

$username =  'username;

$passwd = 'password pilihan';

$host = 'nama host';

$dsn='mysql:host='.$host.';dbname=' . $dbname;

try {

$db = new PDO($dsn, $username, $passwd);

}

Contoh di atas adalah cara membuat koneksi ke database MySQL dengan PHP Data Object(PDO). untuk proses query(meminta) agar terhindar dari SQL Injection bisa kita gunakan prepared statement. Mari kita amati contoh kode berikut ini:

//Query data yang dilewatkan oleh URL dengan method $_GET

$id = isset($_GET['id'']) ? abs((int) $_GET['id']) : 0;

$sql = "SELECT id_kustomer, nama_lengkap, alamat, email, password, phone FROM kustomer

WHERE id = :id";

$k = $db -> prepared($sql);

$k -> bindParam(":id" $id);

$k -> execute();

kode diatas  dapat menghindarkan proses bad query yang dilakukan hacker maupun cracker pada kasus SQL Injection.
Previous
Next Post »
Thanks for your comment