Sql injection biasa berlaku kat login form. Katakan query anda seperti ini:
sql_send("insert into yajiv (name) value ('$name');");
Biasanya SQL Injection attack dilakukan pada Login form:
User akan memasukkan username'nya (dalam field username) sebagai contoh di bawah
Yajiv')"; delete * from names;
Oleh Itu, SQL akan query berikut:
insert into names (name) value ('Yajiv')"; delete * from names;');
Sekarang query default telah berubah kepada query baru. Sekiranya database tak secure, semua data dalam table names akan hilang
Untuk mengelakkan kejadian di atas berlaku function berikut boleh membantu:
<?PHP
function stripQuotes($strWords)
{
$strWords = str_replace("''", "'", $strWords)
return $strWords ;
}
function killChars($strWords)
{
$badChars = array("select", "drop", ";", "--", "insert", "delete", "xp_") ;
str_replace() ;
foreach($badChars as $current)
{
$strWords = str_replace($current, '', $strWords);
}
return $strWords ;
}
?>
Masukkan Code berikut dibahagian login process:
$login = stripQuotes( $_POST['user'], $_POST['pass']
Oleh itu, function ini akan menapis ayat-ayat berikut:
select
drop"
;
--
insert
delete
xp_
(Anda boleh edit sendiri)
Sekarang site dah selamat daripada SQL Injection. Untuk keterangan lanjut sila layari:
http://www.sqlsecurity.com/
Selamat Mencuba
