- Perkenalan
- Metode GET
- Programer harus berhati-hati dengan masalah security saat mengirimkan variabel melalui url, karena nama variabel dan nilainya akan tampak jelas oleh user. User dengan leluasa memasukkan nilai suatu variabel dengan karakter yang bisa membahayakan website bahkan database.
- Pengiriman variabel melalui metode GET hanya efisien untuk jumlah data yang sedikit. dapat dibayangkan berapa panjang url yg harus dibentuk untuk menampung jumlah data yang banyak. Sementara setiap browser memiliki batas maksimum panjang url yang dapat dikirim.
- Disarankan melakukan tahap sanitize terlebih dahulu terhadap variabel $_GET sebelum diproses.
- Metode POST
- Sama seperti metode GET, Programer harus berhati hati dengan masalah security. Seseorang dapat mengisi sembarang nilai dari suatu field sehingga dapat membahayakan website bahkan database.
- Disarankan melakukan tahap sanitize terlebih dahulu terhadap variabel $_POST sebelum diproses.
- Kesimpulan
Pada element form terdapat 2 method yang dapat digunakan untuk mengirimkan data dari halaman form ke server. GET dan POST adalah metode pengiriman data dari suatu client ke server melalui browser. Masing-masing diterima oleh server dalam bentuk variabel array $_GET dan $_POST yang bersifat public. jika method post yang dipilih maka variabel nilai yang dimasukkan di dalam form ketika dikirim ke server tidak akan ditampilkan dibagian address bar browser. Sedangkan jika method get yang akan digunakan, maka semua variabel nilai yang diisikan didalam form yang ketika dikirim akan ditampilkan dibagian address bar browser.
Metode GET adalah sebuah fungsi yang digunakan untuk mengumpulkan nilai dari sebuah form yang dikirimkan menggunakan GET. Informasi yang dikirimkan dari sebuah form menggunakan metode GET dapat dilihat oleh semua orang, Maksudnya adalah Nilai dari form tersebut dapat dilihat dengan jelas pada jendela address bar pada browser. Metode ini mimiliki batasan terhadap banyaknya informasi yang akan dikirimkan. Metode GET tidak cocok untuk nilai variabel yang sangat besar. Tidak dapat digunakan untuk menyimpan variabel yang nilainya lebih dari 2000 karakter.
Berikut contoh untuk menggunakan metode GET. Berinama file dengan nama index.html
<!DOCTYPE html> <html> <head></head> <body> <form action="get.php" method="get"> <table> <tr> <td>Nama</td><td>: <input type="text" name="nama"></td> </tr> <tr> <td>Umur</td><td>: <input type="text" name="umur"></td> </tr> <tr> <td> </td><td> <input type="submit" name="submit" value="submit" ></td> </tr> </table> </form> </body> <html>Kemudian kita membuat file get.php untuk menampilkan nilai variabel yang telah diinputkan
<?php if(isset($_GET['submit'])){ echo "Selamat Datang ".$_GET['nama']."<br>"; echo "Umur anda sekarang ".$_GET['umur']; } ?>File index.html akan menghasilkan tampilan seperti dibawah ini Ketika user mengeklik tombol submit, url akan mengirimkan nilai dari variabel tersebut ke server dan ditampilkan di get.php, di address bar terlihat nilai dari variabel.
Yang Harus diperhatikan dalam pemilihan metode GET
$_POST digunakan untuk mengumpulkan nilai variabel dari sebuah form yang dikirimkan menggunakan metode post. Informasi yang dikirimkan dari sebuah form menggunakan metode POST tidak dapat dilihat oleh orang lain di jendela address bar di browser dan tidak memiliki pembatasan pada banyaknya informasi yang dikirim. Ukuran default nilai metode POST adalah 8 Mb. Untuk mengubahnya dapat dilakukan pada pengaturan POST_MAX_SIZE didalam file PHP.ini
Berikut contoh untuk menggunakan metode POST. Berinama file dengan nama index.html
<!DOCTYPE html> <html> <head></head> <body> <form action="post.php" method="post"> <table> <tr> <td>Nama</td><td>: <input type="text" name="nama"></td> </tr> <tr> <td>Umur</td><td>: <input type="text" name="umur"></td> </tr> <tr> <td> </td><td> <input type="submit" name="submit" value="submit" ></td> </tr> </table> </form> </body> <html>Kemudian kita membuat file post.php untuk menampilkan nilai variabel yang telah diinputkan
<?php if(isset($_POST['submit'])){ echo "Selamat Datang ".$_POST['nama']."<br>"; echo "Umur anda sekarang ".$_POST['umur']; } ?>File index.html akan menghasilkan tampilan seperti dibawah ini Ketika user mengeklik tombol submit, url akan mengirimkan nilai dari variabel tersebut ke server dan ditampilkan di post.php, di address bar tidak akan terlihat nilai dari variabel
Yang Harus diperhatikan dalam pemilihan metode GET
Secara garis besar dapat kita simpulkan bahwa perbedaan dari metode GET dan metode POST adalah
GET | POST | |
---|---|---|
History | Dihistory parameternya tetep karena merupakan bagian dari URL | Parameter tidak disimpan dalam browser |
Bookmarked | Dapat di bookmark | Tidak dapat di bookmark |
Tombol Kembali | tidak dapat dikirim ulang ke server jika HTML disimpan dalam cache browser. | Biasanya browser memberitahu pengguna bahwa data diajukan kembali |
Encoding type (enctype attribute) | application/x-www-form-urlencoded | multipart/form-data or application/x-www-form-urlencoded Use multipart encoding for binary data. |
Parameters | Dapat mengirim tetapi data parameter terbatas | Dapat mengirim parameter, termasuk meng-upload file, ke server. |
Hacked | Mudah untuk hack | Sangat sulit di hack |
Restrictions on form data type | Ya, hanya karakter ASCII yang diijinkan | Tidak dibatasi, data binar apapun diijinkan |
Security | GET kurang aman dibandingkan dengan POST karena data yang dikirim adalah bagian dari URL. Jadi itu disimpan dalam history dan server log browser di plaintext. | POST sedikit lebih aman daripada GET karena parameter tidak disimpan dalam riwayat browser atau di log web server. |
Restrictions on form data length | Ya, karena bentuk data di URL dan URL panjang dibatasi. Sebuah batas panjang URL yang aman 2048 karakter tapi bervariasi oleh browser dan web server. | Tidak dibatasi |
Usability | Metode GET tidak boleh digunakan saat mengirim password atau informasi sensitif lainnya. | Metode POST digunakan saat mengirim password atau informasi sensitif lainnya |
Visibility | Metode GET terlihat untuk semua orang (itu akan ditampilkan di address bar browser) dan memiliki batasan pada jumlah informasi untuk mengirim. | Metode POST variabel tidak ditampilkan dalam URL. |
Cached | dapat dicached | Tidak dapat dicached |
Belum ada tanggapan untuk "Lebih Dalam Mengenal POST dan GET Untuk Keamanan WEB"
Posting Komentar