Mohon tunggu...
Maoelana Noermoehammad
Maoelana Noermoehammad Mohon Tunggu... wiraswasta -

Senior Web Application Developer di Kartatopia

Selanjutnya

Tutup

Inovasi

Menghindari SQL Injection dengan PHP Data Object

25 Agustus 2014   14:09 Diperbarui: 18 Juni 2015   02:38 846
+
Laporkan Konten
Laporkan Akun
Kompasiana adalah platform blog. Konten ini menjadi tanggung jawab bloger dan tidak mewakili pandangan redaksi Kompas.
Lihat foto
Bagikan ide kreativitasmu dalam bentuk konten di Kompasiana | Sumber gambar: Freepik

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.

referensi lebih lanjut dapat kita baca di:

http://www.phpindonesia.net/artikel/pdophp-data-object-crud

http://php.net/manual/en/book.pdo.php

HALAMAN :
  1. 1
  2. 2
  3. 3
Mohon tunggu...

Lihat Inovasi Selengkapnya
Beri Komentar
Berkomentarlah secara bijaksana dan bertanggung jawab. Komentar sepenuhnya menjadi tanggung jawab komentator seperti diatur dalam UU ITE

Belum ada komentar. Jadilah yang pertama untuk memberikan komentar!
LAPORKAN KONTEN
Alasan
Laporkan Konten
Laporkan Akun