Search site


Contact

Tirta Sadewa
Banten

E-mail: greyhacker@reggaefan.com

IP
free counters

Poll

APAKAH ANDA SUKA DENGAN WEBSITE INI..?

Total votes: 185

Counter Powered by  RedCounter
www.Greyhacker.webnode.com www.alamnasroh666.tk
Grey Hacker
Krasak Underground | Underground Music | Compilation Music Underground.
Krasak Underground | Underground Music | Compilation Music Underground.

METALDOGMA

MELINDUNGI APLIKASI DARI SQL INJECTION

05/02/2010 15:09
//--- PREFACE ---//
Dari artikel sebelumnya anda mungkin sudah mengerti tentang apa itu SQL Injection dan bagaimana cara melakukannya. Okay, Saya akan memberikan beberapa tips untuk mencegah SQL Injection.

//------- PEMBAHASAN ------//

1. Lindungi Query SQL

Untuk melindungi query SQL, kita harus menerapkan tehnik sanitasi/mengosongkan seluruh input yang diterima dari request object ASP seperti: Request, Request.QueryString, Request.Form, Request.Cookies dan Request.ServerVariabbles. Teknik sanitasi ini sangat tergantung pada Relational Database Management System.

RDBMS merupakan sistem yang multiuser. Oleh karena itu, RDBMS menyertakan fitur sekuriti untuk mengontrol akses ke/dan penggunaan database. Tujuan arsitektur sekuriti RDBMS adalah untuk melindungi dan memverifikasi semua bagian informasi yang tersimpan dalam database. Informasi bisnis perlu diverifikasi untuk memastikan bahwa tidak ada data yang berubah.

Contoh penanganan MS SQL Server seperti dibawah ini.
Dalam sebuah halaman login, script semestinya terdiri dari dua variabel (txtUserName, txtPassword) dari jenis string yang dilewati. Saat sebuah tanda petik tunggal (') dimasukkan dalam sebuah parameter, hal ini mengijinkan user untuk memanipulasi perintah yang dieksekusi. Untuk menghadapi ancaman SQL Injection, hindari penggunaan tanda petik tunggal (') dengan menggunakan fungsi REPLACE, seperti dibawah ini:
p_strUsername = Replace(Request.Form("txtUsername"), "'", "''")
p_strPassword = Replace(Request.Form("txtPassword"), "'", "''")
 
Contoh yang kedua, script diharapkan adalah sebuah variabel (ID) jenis long integer. Perintah SQL yang tidak diotorisasi dapat mengeksekusi dengan menambahkan perintah SQL ke dalam parameter ID. Untuk mengatasi hal ini gunakan input untuk Long Integer dengan fungsi CLng sbb:
 p_lngID = CLng(Request("ID"))
 
Jika user mencoba melewati suatu string, fungsi CLng akan menampilkan pesan error.

2. Mengganti Error message (Pesan Error)
Yang kedua adalah mengganti pesan error message karena hal ini seringkali digunakan oleh sang attacker untuk menelusuri informasi jalur penyimpanan database. Contoh codenya:
 
Sub LogError(strLocation)
Dim objFSO 'sebagai Scripting.FileSystemObject
Dim objStream 'sebagai Scripting.TextStream
if Err.Number = 0 Then Exit Sub
WriteLine "<p><font color=#FF0000><b>"_
& "ERROR."_
& "Please try again later or contact webmaster.</b></font></p>"
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objStream = objFSO.OpenTextFile("C:\errorlog.txt",_
ForAppending, True)
ObjStream.WriteLine Now() & ": [" & Request("SCRIPT_NAME")_
& " - Err #" & Err.Number & "]" _
& Err.description & "[Lokasi: " & strLocation & "]"
ObjStream.Close
Set objStream = Nothing
Set objFSO = Nothing
Response.End
End Sub
 
3. Batasi Permisi
batasi permisi hanya pada user yang terotorisasi saja. Sang user tentu saja harus yakin bahwa data yang dia terima sudah akurat dan tidak ceroboh memodifikasinya.


//------- Referensi
[1] https://www.4guysfromrolla.com/webtech/061902-1.shtml
[2] www.spyrozone.tk
 
 
===============================================