Kali ini kita hanya akan membahas teknik dasar komunikasi form dalam web development, dan kali ini kita juga akan menggunakan php sebagai referensi pembahasan komunikasi form. Kita tidak akan membahas ajax kali ini, mungkin lain waktu kita akan membahas ajax dalam kesempatan yang lain.
Pada dasarnya komunikasi form dalam web development menggunakan beberapa metode. Diantaranya adalah, Metode GET, PUT, POST, DELETE, CONNECT, TRACE. Kali ini kita akan membahas dua metode yang sering dipakai dalam komunikasi form dalam web aplikasi, yaitu metode GET dan metode POST Kedua metode ini mempunyai keunggulan dan kekurangan masing-masing. Pemilihan antara dua metode ini bergantung pada kebutuhan kita nantinya dalam mengembangkan suatu aplikasi web. Gambar 1 :
METODE HTTP GET :
Secara praktikal metode ini mengambil paramater-parameter yang terlihat nyata pada urlketika satua atau dua buah form berinteraksi, untuk kemudian paramater-parameter tersebut menjadi suatu syarat untuk menjalankan suatu proses dalam form validasinya. Kita dapat menemui metode get ini dalam suatu web aplikasi ketika kita mendapati dalam url seperti contoh berikut : http://www.mysite.com/login.php?uid=1234568. Angka 1234568 itu adalah nilai dari paramater uid yang dilemparkan oleh form. Jadi bisa disimpulkan bahwa dalam suatu web aplikasi jika parameter dan nilainya dapat terlihat secara jelas dalam url maka komunikasi yang terjadi menggunakan metode http get.
Bagaimana cara php dalam mengimplementasikan metode http get ini ? Ok kita akan mencoba melakukan percobaan kecil dengan menggunakan dua buah file. File pertama sebagai form-nya dan file kedua sebagai validasinya. Perhatikan file pertama dibawah ini sebagai formnya, file : form1.html
kemudian perhatikan validator dari form keduanya validate.php,
Ok sekarang kita bahas saja aplikasi kecil ini :
Pada form1.html kita dapat melihat pada baris <form method="get" action="validate.php"> pada baris ini kita bisa melihat bahwa form yang kita gunakan menggunakan metode get dan form tujuan atau form validatornya adalah validate.php. Yang harus kita pahami adalah jika kita ingin menggunakan metode http get pada web aplikasi kita, maka form yang kita definisikan menggunakan metode get seperti diatas. Sementara tampilan pada web aplikasi kita adalah standar html biasa dengan dua input, dimana yang satu merupakan berupa text dan satu lagi berupa password, dan sebuah tombol sebagai sebuah trigger komunikasi dua form tsb.
Kemudian kita akan melihat bagaimana php menangani metode get ini dalam programmingnya pada barisan kode pada file validate.php. Sebelumnya coba kita perhatikan gambar 2, pada url yang ada pada gambar tersebut terdapat tulisan seperti ini : ....../validate.php?user=mojo&pass=mojo99, begitulah cara kerja metode http get, semua paramater dan nilai parameter tersebut ditampilkan dalam url sehingga kita bisa melihat secara jelas parameter dan nilai dari parameter tsb, sesuatu menyembul dalam benak anda ? Ok nanti kita bahas sesuatu yang menyembul tsb.
Sekarang perhatikan cara php menangani komunikasi 2 file tsb, masing-masing nilai parameter diinisialisasikan kepada sebuah variabel dengan cara seperi ini:
$user = $_GET["user"];
$pass = $_GET["pass"];
lalu kemudian mencetak 2 variabel yang sudah terisi nilainya tersbut ke dalam layar dengan cara seperti ini :
echo "$user.........
dimana $user adalah variabel untuk diisi nilai yang ditangkap dengan cara $_GET[“user”] dan $pass yang ditangkap dengan cara $_GET[“pass”]. User dan pass yang ada dalam tanda kurung [] adalah parameter yang dilempar dari form1.html. Jadi demikianlah cara php menangani komunikasi form yang menggunakan metode http get.
Selaras dengan sesuatu yang tadi mungkin menyembul dalam benak anda, kita perhatikan bahwa berbahaya sekali metode http get ini jika kita terapkan dalam web aplikasi kita, user akan dengan gampang melihat nilai-nilai dan parameter-parameter yang terlempar dari komunikasi form dalam web aplikasi kita. Hal inilah yang dapat menyebabkan seseorang mengeksploitasi suatu web dengan cara menginjeksi url yang ada.
Banyak developer web aplikasi masih tetap menggunakan metode http get ini, dan usaha dari mereka untuk menjaga keamanan web yang mereka buat ini adalah dengan cara meng-enkripsi url yang tampil, baik parameter maupun nilai dari parameter yang ada. Keamanan ini biasanya dibuat berlapis-lapis dengan menggunakan metode enkripsi string dari mulai sha, base64, md5, dan metode-metode enkripsi yang lain, atau mungkin metode enkripsi yang mereka buat sendiri.
METODE HTTP POST:
dan ini adalah validate2.php yang juga kita rubah sedikit dari file validate.php di atas: file : validate2.php
kemudian kita jalankan aplikasi tsb dengan cara membuka form2.html, setelah kita masukkan text-text yang tersedia, kemudian kita klik tombol masuk maka akan kita dapati hasil seperti gambar berikut, gambar 3:
adakah perbedaan antara gambar 2 dan gambar 3 disana? Yup, benar ada perbedaan yang terjadi pada dua gambar tersebut, pada gambar 3 kita tidak melihat ada paramater-paramater dan nilai-nilainya tercetak disana, namun hasil cetakan pada body halaman web tetap sama. Demikianlah metode http post, metode ini tidak akan mencetak paramater-parameter dan nilai dari paramater tersebut dalam url, sehingga beberapa developer merasa bahwa metode ini lebih aman dari pada metode http get.
Dari sisi kode, pada form2.html perbedaan terjadi hanya pada baris <form method="post" action="validate2.php"> ini saja, untuk membuat sebuah form dimana kita akan memakai metode http post, intinya kita hanya mengganti nilai dari method menjadi post saja. Sementara dalam form validatornya dalam hal ini validate2.php kita cukup merubah $_GET menjadi $_POST saja, sebab memang beginilah cara php menangani komunikasi form yang menggunakan metode http post.
Sekarang tinggal anda menyimpulkan sendiri lebih aman mana ketika kita menggunakan metode http dalam membuat komunikasi form dalam sebuah web aplikasi. Dari sana anda juga yang akan dapat menarik kesimpulan apa keuntungan dan kerugian jika kita menggunakan salah satu metode http tersebut dalam web aplikasi kita. Sepanjang semua jawaban dapat anda pertanggungjawabkan secara benar dan masuk akal, maka anda akan selalu benar dalam argumentasi anda. Terima kasih dan Semoga Bermanfaat....!!!
Menteng, 21 September 2008
JOSESCALIA
No comments:
Post a Comment