Captcha Alternatif : Atasi SPAM Pakai Javascript Date

Kebanyakan pelaku spam menyerang atau memanfaatkan sebuah fitur pada website tertentu yang dilakukan secara otomatis pakai cronjob. Misalnya ada sebuah situs auto like atau web program jenis lainnya, jika website tersebut tidak menambahkan captcha, biasanya menjadi sasaran empuk bagi penggila auto like yang memanfaatkan hosting gratis milik orang tersebut dengan submit secara otomatis lewat cronjob. Tentu sebuah kerugian besar bukan??

Akan tetapi, terkadang ada yang mengalami kesulitan install captcha di webnya, kebanyakan karena pada request kedua, kode captcha sudah diperbarui, sehingga berbeda dari request pertama, akibatnya program tidak mau jalan.

Sebagai langkah alternative, Anda bisa memanfaatkan javascript dates untuk mengatasi aksi spam ini. Berikut skema yang perlu Anda tahu:

Begitu halaman web dibuka, browser akan set date secara otomatis yang didapat dari kode script ini. Kemudian, jika date yang sekarang sama dengan date yang ada dalam input value, program baru bisa dijalankan.

Javascript Date

<script>
var captcha = new Date();
document.write ('<input value="'+captcha+'" type="hidden" class="captcha"/>');
</script>

Sebagai contoh, saya ingin merubah warna backround blog ini dengan function onclick, berikut sebagai kode sampel
<button onclick="cekSekarang()">RUBAH WARNA</button>
<button onclick="resetWarna()">KEMBALIKAN KE NORMAL</button>
<script>
function cekSekarang() {
if ($(".captcha").val()==captcha) {
$("body").attr("style", "background:#F2F9FF");
}
else {
alert("GAGAL!!");
}
}
function resetWarna() {
$("body").removeAttr("style");
}
</script>
Kode ini bekerja pada satu halaman yang tidak menggunakan request method. Jika Anda menggunakan dua halaman atau lebih atau satu halaman yang sama tapi pakai method, misalnya pengiriman formulir method="post", kode ini tidak bekerja, karena nilai detik akan berbeda, terlebih jika pengguna terlalu lama pada halaman A untuk mengisi data yang kemudian baru mengirimkan formulir ke halaman B.

Untuk mengatasinya, Anda perlu mematikan detik agar work. Atu bila perlu, matikan juga fungsi menit jika ternyata pengunjung lebih dari satu menit sebelum menuju halaman B.

Untuk mematikan menit dan detik, gunakan javascript date yang ini:
<script>
var captcha = new Date();
captcha.setSeconds(0);
captcha.setMinutes(0);
document.write ('<input value="'+captcha+'" type="hidden" class="captcha"/>');
</script>

Lihat Contoh

-
URL

Komentar yang bermanfaat mendapat Rating*****oleh Admin blog ini