13
Mencegah remote submit
Anda mempunyai website yang mengijinkan pengunjung untuk memasukkan kontent ke website Anda tanpa harus login? Misalnya form komentar, buku tamu dan lain-lain. Untuk menghindari spamming atau otomatisasi, metode yang paling umum adalah memasang kode captcha dalam bentuk gambar atau yang lainnya. Untuk metode gambar sebenarnya masih mempunyai kelemahan, karena kita bisa mengakses gambar tersebut secara remote atau tanpa harus mengunjungi website. Oleh karena kelemahan tersebut website kita masih bisa di otomatisasi atau memasukkan konten tanpa harus mengunjungi website tersebut.
Cara sederhana berikut bisa digunakan untuk mencegah terjadinya hal di atas. Skenarionya adalah kita membuat kode unik setiap kali halaman form kita di load, kode unik tersebut kita simpan dalam COOKIE atau SESSION dan pada form isian kita tambahkan satu hidden field yang berisi kode unik tersebut. Pada saat form di submit kita cocokkan value pada hidden field dan value pada COOKIE atau SESSION. Jika tidak cocok maka proses pemasukan data tersebut tidak dilanjutkan.
Contohnya adalah sebagai berikut menggunakan PHP. Untuk membuat kode unik kita bisa gunakan fungsi microtime dan untuk lebih mantap kita encrypt kode unik tersebut menggunakan md5 atau sha1, sebagai contoh saya menggunakan sha1.
$kodeunik = sha1(microtime());
kemudian kita simpan dalam COOKIE atau SESSION. Jika Anda menggunkan COOKIE pastikan bahwa COOKIE diset sebelum ada header yang dikirimkan.
setcookie('kodeunik', $kodeunik, 0, '/', ''); //Jika menggunakan COOKIE atau $_SESSION['kodeunik'] = $kodeunik; //Jika menggunakan SESSION
Kemudian pada form isian kita tambahkan hidden field
<form action="" method="post"> <input type="hidden" name="kodeunik" value="<?php echo $kodeunik; ?>" /> </form>
Pada validasi input kita tambahkan baris sebagai berikut.
$kodeunik = $_COOKIE['kodeunik']; //Jika menggunakan COOKIE atau $kodeunik = $_SESSION['kodeunik']; // Jika menggunakan SESSION if( $kodeunik != $_POST['kodeunik'] ){ die('Silahkan kunjungi website kami.'); }
Saya sendiri sudah mencobanya dan sampai saat ini cukup efektif untuk mencegah remote submit. Selamat mencoba!
Post comment
Tulisan Terakhir
- Taqobalallahu mina wa minkum
- Install Nginx menggunakan Nginxcp
- Error Install PHP Mongo Extension
- Cek Apakah Nilai Sebuah Field di Tabel MySQL, Integer Atau Bukan
- WordPress dan PHP 5.3, Permalink Page Blank
Arsip
- September 2011
- Juni 2011
- Mei 2011
- Maret 2011
- Agustus 2010
- Mei 2010
- Januari 2010
- Februari 2009
- Desember 2008
- September 2008
- Agustus 2008
- Juli 2008
- Juni 2008
- April 2008
- Maret 2008
- Februari 2008
- Januari 2008
Blogroll
- Batik Murah
- Buat Blog
- Cara Buat Blog
- Cara Membuat Blog
- Endoet
- Hosting Murah Indonesia
- Iklan Baris Gratis
- Iklan Gratis
- Iklan Gratis
- Membuat Blog
- Pusat Promosi
- Website Murah
Komentar Terakhir
- kocu pada Submit form sederhana dengan ajax menggunakan mootools
- nanang pada Plugin-plugin JQuery Yang Layak Dicoba
- elyosfimuchlis pada Plugin-plugin JQuery Yang Layak Dicoba
- mruteck pada Plugin-plugin JQuery Yang Layak Dicoba
- joinonptc pada Plugin-plugin JQuery Yang Layak Dicoba