WAKTU MAKASSAR
WELCOM TO MY BLOGGER

SEBELUMX KAMI MOHON MAAF APA BILA BLOGGER INI MASIH SEDERHANA, SEMOGA ANDA TIDAK JENUH DAN BOSAN.


TERIMA KASIH ATAS KUNJUNGANX
PEGUNJUNG

MY FRIENDSTER N YM

Sabtu, April 04, 2009

TEKNIK SQL

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.

Setelah semuanya selesai, pindah ke apliasi Visual Basic 6, tulislah code berikut pada Form1.
Kode::
Private Sub Command1_Click()
Data1.RecordSource = "SELECT * FROM LOGIN WHERE USER='" & Text1.Text & _
"' AND PASSWORD='" & Text2.Text & "'"
Data1.Refresh

If Data1.Recordset.RecordCount > 0 Then
MsgBox "Login Berhasil!"
Else
MsgBox "Login Salah!"
End If
End Sub

Private Sub Form_Load()
Data1.RecordSource = "SELECT * FROM LOGIN"
Data1.Refresh
End Sub


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.

Untuk melihat dampak dari serangan ini. Jalankan kembali aplikasi yang kita buat, dan anggaplah Anda sebagai orang lain yang tidak mengetahui password untuk mengakses aplikasi tersebut. Namun dengan sedikit SQL Injection anda dapat memasuki ruang login hanya dengan memasukkan teks berikut "hack' or '1'='1" (tanpa tanda kutip) pada textbox input user dan/atau password. Maka Anda tidak akan melihat pesan "Login Salah!" melainkan "Login Berhasil!".

Terus, bagaimana ini bisa terjadi? padahal kita tidak memasukkan password sesungguhnya?

Ketika kita memasukkan user "meyer" dan password "tomero", maka query sql pada code diatas akan menjadi :
Kutipan::

SELECT * FROM LOGIN WHERE USER='meyer' AND PASSWORD='tomero'"


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?
Kutipan::

"SELECT * FROM LOGIN WHERE USER='hack' or '1'='1' " & _
AND PASSWORD='hack' or '1'='1'"


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?

Dari percobaan yang sudah kita buat, kita dapat menggambarkan bagaimana cara untuk menghindari serangan ini. Selanjutnya kita akan membuat contoh sederhana prosedur untuk memfilter input yang dimasukkan oleh orang agar tidak bisa dicurangi dengan SQL Injection.
Kode::
Private Function FilterSQL(strInput As String) As String
strInput = Replace(strInput, "'", "''", 1, -1, 1)
strInput = Replace(strInput, "_xp", "", 1, -1, 1)
strInput = Replace(strInput, "--", "", 1, -1, 1)
strInput = Replace(strInput, ";", "", 1, -1, 1)

FilterSQL = strInput
End Function


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.
Kode::
Data1.RecordSource = "SELECT * FROM SISWA WHERE NAMA='" & FilterSQL(Text1.Text) & _
"' AND ASAL='" & FilterSQL(Text2.Text) & "'"
Data1.Refresh

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, sekian dari saya. Salam Damai Sejahtera. Tomero

Kamis, April 02, 2009

20 cara berciuman paling Hot

1. Spesial Valentine.

Tinggalkan jejak ciuman berbentuk “V” di wajah pasangan Anda. Diawali dimata kanan, turun perlahan-lahan ke hidung, bibir, dagu, dan berakhir dimata kiri.

2. Serba 14

Kasih tahu dia bahwa berkaitan dengan tanggal 14,maka akan ada 14 kali ciuman untuknya sepanjang hari itu. Buat ia menunggu-nunggu, jenis ciuman apa saja yang ia dapatkan berikutnya.

3. Ala Jadoel.
Seperti di film-film kuno tahun 1950-an, pegang erat dagu pasangan dengan dua telapak, dekatkan wajah perlahan-lahan, lalu beri dia ciuman di bibir dengan amat sangat lembut.

4. Bisik Menelisik
Dalam suasana sehari-hari dan rutin, mendadak peluklah ia dari belakang,bisikkan betapa Anda mencintainya, cium lembut telinganya, lalu
lepaskan segera. Buatlah ia penasaran!

5. Tak Kusangka
Mirip dengan nomor 4, dalam suasana keseharian,tiba- tiba ciumlah secara sekilas pipinya.Katakan betapa pentingnya ia dalam hidup Anda.

6. Matamu Matahariku
Saat menjelang berciuman, kala matanya menutup,alihkan ciuman ke kedua kelopak matanya secara cepat dan ringan.

7. Kucing-kucingan
Bermainlah seperti kucing. Elus kedua kakinya sembari mengeong berharap pada datangnya ciuman.

8. Kiss Hard
Elus rambutnya, raba bagian belakang kepalanya,lalu tarik kepalanya mendekat, lalu cium dengan dalam, lama, dan dengan cara agak kasar. Ini hanya bisa dilakukan jika hubungan keduanya sudah cukup lama.

9. Daftar Belanjaan
Saat belanja berdua di toko grosir yang besar,berlombalah mencari satu item barang. Yang pertama menemukan berhak mendapatkan ciuman.

10.Second Chance
Seolah-olah seperti sebuah ciuman perpisahan biasa yang pendek dan sekilas saja. Tapi segera setelah itu, raih tangannya, lakukan ciuman kedua yang panjang, dalam, dan bergelora.

11.Sebuah Penantian
Telepon dia pagi-pagi, janjikan sebuah ciuman malam nanti. Setelah makan siang beri reminder akan janji itu. Lalu 2 jam sebelum pertemuan.
Lalu 1 jam. 30 menit. 15 menit. Dan pada akhirnyaketemuan, lakukanlah secara perlahan, lambat,mendalam, lembut, dan lamaaaaa sekali.

12.Dokter Cinta
Buatlah sebuah chart tes ketajaman mata dengan huruf yang semakin bawah kian mengecil, sepertibiasa ditemukan di ruang praktek dokter mata.Pada huruf terkecil tulislah, “If you can read thisyou are standing close enough to kiss me.”

13.Ciuman Hadiah
Janjikan sebuah ciuman untuk setiap rokok yang tidak dihisapnya, untuk setiap hari di mana pakaian dan sepatu ditaruh rapi dan sopan pada tempatnya.

14.Terlanjur Basah
Saat turun hujan deras, pergilah ke luar berdua danmem buka payung. Kemudian ciumlah dia. Ketika makin hot, lemparkan payung jauh-jauh, lanjutkan ciuman sampai kalian benar-benar kuyup.

15.Ciuman Sedingin Es
Kulumlah sebuah es batu, lalu kalian berduaberciuman. Cobalah memindahkan es batu dari mulut ke mulut. Pasti menyenangkan dan penuh kejutan.

16.Spiderman Kiss
Persis seperti adegan filmnya. Berciuman secara terbalik. Sensasional! Caranya bergelantungan kayak Spiderman, gimana? Ya pikirin sendiri, dong.

17.Spider Kiss
Saat sedang berciuman, gigitlah secara lembut salahsatu bibirnya. Awas, jangan sampai menyakiti dia.Rasa gemas akan menyebabkan ia menginginkan ciuman tambahan.

18.Pernafasan Buatan
Kala berenang berdua, masukkan kepala ke dalam air,tahan nafas, lalu beri dia pernafasan buatan. Bisa juga sih pernafasan buatannya di darat saja. Ngapain repot-repot dalam air.

19.Ciuman Astronomi
Berbaringlah berdua di udara terbuka, mengamati bintang-bintang. Untuk setiap gugus bintang yang bisa dikenali, mintalah jatah ciuman. Demikian juga jika Anda berdua berhasil mengamati konstelasiyang sama.

20.Takut Kepergok
Dalam sebuah kesempatan pesta atau hari kerja biasa, menyelinaplah ke tangga darurat, atau didalam lift, atau sebuah pojok yang jarang dilalui orang lain. Berciumanlah di sana. Perasaan takut kepergok akan menghasilkan sensasi berbeda!

Ciptakan Suasana Romantis Bersama Pasangan Anda,dengan Tips-Tips Diatas,Semoga Bisa Membantu menjaga Keharmonisan Hubungan anda.

Maukie - the virtual cat