Sabtu, 27 April 2013

Menyaring String Query dan Anti SQL Injection


Dalam artikel ini akan dibahas tentang bagaimana cara menghindari  serangan sql injection yang bisa masuk ke system website yang akan kita buat, ada beberapa kode yang bisa anda pakai untuk menghindari serngan SQL Injection, sebenarnya anti SQL injection ini cenderung mengarah ke pemformatan ulang text yang di inputkan, sehingga menghindari kode atau tag yang dimasukkan secara illegal. Kode tersebut missal diantaranya adalah :

1.      Sprintf
Digunakan untuk memanggil variabel dalam format yang telah ditentukan.
Kode yang digunakan : sprintf(format_string, variabel_n)
Contoh :
<?php
$kata =”Saya punya  uang”;
$uang=9000;
echo sprintf(“%s %u Rupiah”,$kata, $uang);
?>
Out yang dihasilkan : Saya punya uang 9000 Rupiah
Keterangan :
Format string yang digunakan dalam fungsi sprintf adalah seperti dibawah ini:
  • %% tanda %
  • %b angka binary
  • %c karakter
  • %s string
  • %d desimal
  • %u desimal yang tdiak bertanda
  • %f float
  • %F float
  • %o oktal
  • %x hexadesimal dengan huruf kecil
  • %X hexadesimal dengan huruf besar
  • %e  notasi scientific
2.      mysql_real_escape_string();
Funginya membuang karakter khusus dalam string untuk digunakan dalam pernyataan SQL.
Contoh :
$data = mysql_real_escape_string($password);
$sql = "SELECT name FROM table_user WHERE  passwrd=$data";
Perpaduan antara sprint dan mysql_real_escape_string()
$query = sprintf(“Select * from anggota where username=’$username’ and password=’$password’”,mysql_real_escape_string($username), mysql_real_escape_string($password));
3.      Fungsi stripslashes()
Karakter backslash (“”) dalam bahasa pemrograman dikenal sebagai karakter escape, yaitu karakter yang digunakan untuk memungkinkan karakter khusus ditampilkan bersama dengan karakter biasa. Salah satu contoh dari karakter khusus adalah karakter apostrophe (tanda petik, kutip tunggal). Di dalam program PHP, apostrophe digunakan untuk tanda yang mengapit data yang dianggap sebagai karakter atau string. Contohnya seperti ketika anda menulis output dengan tanda petik tunggal, echo ‘’ atau mendeklarasikan variabel dengan petik tunggal $strings =’100’; dinama hasilnya akan berupa karakter text. Ini biasanya dipakai ketika anda ingin memasukkan
Contoh penggunaanya
function amankok($string)
{
$string = stripslashes($string);
$string = strip_tags($string);
$string = mysql_real_escape_string($string);
return $string;
}
4.      Fungsi strip_tags(),  trim()
strip_tags() - Fungsi ini digunakan untuk menghilangkan karakter2 html dari value yg diinputkan, misalny pd form login atau guest book.
trim () -  Digunakan untuk menghilangkan spasi kanan dan kiri, missal saat anda ingin membuat inputan email,domain atau password, dimana data yang diinputkan tidak boleh mengandung spasi di depan atau belakang
Contoh :
$username = trim(strip_tags($_POST[username]));
Menghilangkan  spasi dan membuang karakter html yang ada pada username.

Tidak ada komentar: