Would you like to react to this message? Create an account in a few clicks or log in to continue.


Thu Nov 21, 2024 11:00 pm
 
Indeks★Forumdns★Latest imagesPencarianPendaftaranLogin

Kirim topik baru   Kirim balasan
 

 SQL Injection Flaw Patching

Go down 
PengirimMessage





VIP

Join date : 01.01.70

SQL Injection Flaw Patching Empty
PostSubyek: SQL Injection Flaw Patching   SQL Injection Flaw Patching EmptyMon Feb 06, 2012 4:02 pm

patch untuk mencegah serangan SQL Injection di halaman dinamis pada PHP + MySQL.

Biasanya halaman dinamis ini
bentuknya seperti ini http://target.com/vuln.php?id=[Input_Angka]

Bentuk umum kode di halaman dinamis php untuk membaca database melalui MySQL :
PHP Code:
$id = htmlentities($_GET['id']);
$variabel = mysql_query("select *from tabeltarget where idtarget='$id'")




Injection Flaw terjadi karena inputnya gak kefilter dengan baik.
Sehingga input ‘$id’ yang seharusnya diisi dengan (biasanya) angka bisa
diisi dengan query SQL.. Yang mengakibatkan query SQL tersebut
dieksekusi sehingga injector bisa melakukan berbagai hal misalnya
membaca isi database, membaca suatu file di situs tersebut, dll.

Nah, untuk mencegah hal tersebut sebaiknya kita memfilter inputnya sebelum diproses dengan SQL.

Contoh kode filternya :
PHP Code:
error_reporting(0);
class filter{
function filtering($id){
$idfilter = mysql_real_escape_string($id);
if (!ctype_digit($idfilter))
{
echo "Can't process your request, dude Razz ";
exit;
}
else if ($idfilter <= 0)
{
echo "Can't process your request, dude Razz ";
exit;
}
else
{
return $id;
}
}
}
$Filter2 = new filter();
$id = htmlentities($_GET['id']);
$secured = $Filter2->filtering($id);
$variabel = mysql_query("select *from tabeltarget where idtarget='$secured'")




Penjelasan :

Pertama-tama menggunakan error_reporting(0); . Kode tersebut digunakan untuk mendisable error reporting sehingga jika terjadi error tidak keluar pesan error.

Selanjutnya variabel $id disaring dulu menggunakan mysql_real_escape_string yang berfungsi untuk menambahkan slash (\) apabila ada tanda kutip pada input $id.

Setelah disaring dengan mysql_real_escape_string, disaring lagi dengan melakukan pengecekan apakah inputnya berupa angka atau bukan dengan menggunakan kode !ctype_digit
. Jika ternyata bukan angka maka akan ditolak. Selain pengecekan input
apakah angka atau bukan, dilakukan juga pengecekan apakah inputnya
sama atau lebih kecil dari 0 (minus) jika iya maka akan ditolak.
Kembali Ke Atas Go down
 
SQL Injection Flaw Patching
Kembali Ke Atas 
Halaman 1 dari 1
 Similar topics
-
» Havij SQL Injection
» SQL Injection Step By Step

Permissions in this forum:Anda dapat menjawab topik
 :: 他のもの ( Other Things ) :: チュートリアルとヒント(Tutorials & Tips)-
Kirim topik baru   Kirim balasanNavigasi: