Guru.Technosains.Com |
||||||||||||||||
Home | Kuliah Elektro | Elektronik Project | Tutorial | Download | ||||||||||||
|
||||||||||||||||
|
||||||||||||||||
|
more search type here |
|
||||||||||||||
|
|
|||||||||||||||
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|||||||||||
|
SCRIPT CODE LOGIN ANTI SQL INJECTION Oleh Arif Johar Taufiq
Materi ini saya kembangkan dari materi masinosinaga, dimana program untuk mengantisipasi SQL injection telah saya modifikasi sehingga lebih kebal terhadap serangan SQL injection. Apa trick nya ikuti di tutorial ini. Untuk lebih jelas BACA dulu Materi dari Masinosinaga Materi asli dari Masinosinaga baca dibawah ini:
Mungkin di antara Anda sudah banyak yang mengenal teknik serangan
terhadap aplikasi yang dinamakan "SQL Injection". SQL Injection atau dalam
bahasa Indonesia, artinya: Suntikan SQL (Structure Query Language), telah
banyak memakan korban. Karena dengan mengetahui teknik serangan ini, Anda
sudah bisa mengelabui aplikasi database. Untuk itu, bagi Anda yang baru
mengenal teknik serangan ini, ada baiknya untuk menyimak ulasan berikut.
Untuk mengetahui secara mudah tentang dampak dari serangan ini,
kita mengambil contoh pada proses "LOGIN". Proses "LOGIN" adalah proses yang
paling vital dalam setiap aplikasi yang ada. Karena dengan adanya proses ini,
masing-masing user dapat ditentukan haknya dalam mengakses suatu aplikasi.
Contohnya pada aplikasi-aplikasi perkantoran, proses "LOGIN" sangat berguna
untuk menentukan jabatan dan pekerjaan apa yang harus dilakukan seorang
karyawan dalam aplikasi yang dibuat.
Dari pada kita membayang-bayangkan, lebih baik kita praktek
langsung agar lebih mudah dicerna. Di sini kita bersama-sama membuat contoh
aplikasi Visual Basic dengan Database Access. Untuk itu buatlah desain form
seperti yang tampak pada gambar dibawah ini.
Biarkan Property Name pada masing-masing
control apa adanya. Selanjutnya kita desain sebuah database sederhana. Buatlah
database Microsoft Access dengan nama tabel "login" yang berisi kolom (field)
"user" dan "password", lalu namakan databasenya "pegawai.mdb". Isikan dengan
beberapa record.
Sekarang, cobalah
program tersebut. Lakukan pengujian dengan memasukkan user dan password yang
salah. Jika Anda menemukan pesan "Login Salah!" maka proses berjalan dengan
normal. Namun biar lebih memastikan bahwa program berjalan baik, coba juga
dengan memasukkan user dan password yang benar. Jika Anda tidak salah memasukkan
user dan password, maka pesan yang keluar adalah "Login Berhasil!". Artinya
sampai saat ini pengujian program berjalan dengan baik. Terus apa lagi yang
dipikirkan? Inilah suatu kecerobohan yang terkadang sering muncul dalam aplikasi
yang dibuat para programmer. Para programmer sering lupa akan sisi keamanan
aplikasi yang dibuat.
Karena SQL menggunakan kriteria berdasarkan user dan password tersebut, maka jika user dan password tidak cocok dengan yang ada dalam tabel secara otomatis aplikasi memunculkan pesan "Login Salah!". Tapi, jika kita memasukkan teknik SQL Injection pada query melalui input pada aplikasi misalkan user dan password "hack' or '1'='1", apa yang terjadi pada query sebenarnya?
Kita dapat melihat, bahwa query SQL sudah berubah menjadi
query yang tidak menampilkan filter terhadap user dan password. Itu dikarenakan
pernyataan "OR 1=1" menyebabkan hasil execute query yang menghasilkan nilai
True. Mengapa True? Dalam logika matematika,
False Or True atau True Or True
menghasilkan nilai True. Untuk hal ini
saya tidak akan membicarakan panjang lebar. Anda bisa membacanya dalam pelajaran
logika Matematika atau Pemrograman. Hasil pengembalian nilai True ini pada query
tadi mengakibatkan seluruh record akan ditampilkan, karena semua kriteria
berlaku pada semua record. Trik yang menyenangkan, bukan?
Prosedur diatas akan mengubah semua karakter-karakter yang berdampak pada teknik SQL Injection ini. Untuk itu tambahkan prosedur tersebut dalam code sebelumnya dan gantilah query SQL untuk proses filter user dan password seperti code berikut.
Akhir kata, sekian dulu tutorialnya untuk saat ini. Namun seperti biasa, sebelum saya menutup pelajaran hari ini, saya mau memberikan PR agar Anda dapat lebih memahami tutorial ini dengan baik dan lebih berhati-hati lagi saat membuat modul Login di aplikasi Anda. Untuk itu, silahkan Anda coba lakukan percobaan SQL Injection pada code yang belum di proteksi, agar dapat melakukan manipulasi record seperti "UPDATE" atau "DELETE". Oke.
SCRIPT CODE LOGIN ANTI SQL INJECTION oleh: ARIF JOHAR TAUFIQ (CARA MENGATASI ANTI SQL INJECTION) dibawah ini Agar lebih kebal dari SQL injection, scrip code untuk login dapat anda buat lebih spesifik yang mengquery tabel login/user. Isian text oleh user jika dieksekusi tidak mengakibatkan SQL injection, karena proses validasi ada pada pencocokan isi tabel login/user. Berdasar kriteria filter tersebut kemudian cocokan recorset field USER dan PASSWORD nya. Jika cocok maka proses login dapat Anda terusan ke aplikasi berikutnya, jika tidak maka keluar.
Databse yg digunakan PBL.MDB berisi Tabel PUser dgn field UserName(text 20), Password(text 20). Buatlag form spt diatas dan code program sbb: Option Explicit
|
|||||||||||||||
|
|
|
|
|
|
Copyright (C) guru.technosains.com
For problems or questions regarding this web contact [admin]