Anti Spamer pada “Form” GuestBook

Posted on

guestbookSpamer, banyak teman-teman yang menanyakan tentang blognya di penuhi dengan komentar yang enggak², hem aku langsung sok udzon ama si Spamer, pasti ulahnya dia yang sering memenuhi database buku tamu, shutbox, form pengiriman. Aku langsung berkungjung kerumah paman google untuk meminta pendapat beliau, apa yang seharusnya aku lakukan agar terhindar dari para tamu yang tak pantas untuk di hormati.

Salah satu cara untuk mengatasi SPAM pada daerah vital (guestbook, shoutbox, contact de el el) adalah dengan menggunakan CAPTCHA (Completely Automated Public Turing Test to Tell Computers and Humans Apart), sebuah cara yang diharapkan mampu membedakan antara manusia dan robot. Bentuk implementasinya bisa bermacam-macam, akan tetapi yang paling banyak digunakan adalah dengan menggunakan gambar.
Berikut ini kode yang perlu Anda tambahkan pada bagian awal dari halaman guesbook Anda:

include “fungsi.php”;
session_start();
$_SESSION[‘random-words’] = generate_word();

Baris pertama digunakan untuk menyertakan file captcha.php yang akan berisi fungsi untuk menghasilkan gambar yang kita perlukan. Baris kedua digunakan untuk menjalankan session. Baris ketiga untuk mengacak kata (kita menggunakan fungsi generate_word) yang hendak dibuat dalam bentuk gambar. Kata ini kita simpan pada session yang nanti akan kita gunakan untuk verifikasi.

Berikutnya pada bagian form untuk guestbook, tambahkan kode dibawah ini
Code :

Code
Isi dari file fungsi.php:

function generate_word()
{
$input = array(”0?,”1?,”2?,”3?,”4?,”5?,”6?,”7?,”8?,”9?,”a”,”b”,”c”,”d”,”e”,”f”,”g”,”h”,”i”,”j”,”k”,”l”,”m”,”n”,”o”,”p”,”q”,”r”,”s”,”t”,”u”,”v”,”w”,”x”,”y”,”z”,”A”,”B”,”C”,”D”,”E”,”F”,”G”,”H”,”I”,”J”,”K”,”L”,”M”,”N”,”O”,”P”,”Q”,”R”,”S”,”T”,”U”,”V”,”W”,”X”,”Y”,”Z”);
$rand_keys = array_rand($input, count($input));
$hash=$input[$rand_keys[0]] . $input[$rand_keys[1]] . $input[$rand_keys[2]] . $input[$rand_keys[3]] . $input[$rand_keys[4]] . $input[$rand_keys[5]] . $input[$rand_keys[6]] . $input[$rand_keys[7]];
return $hash;
}

Inti dari fungsi ini hanyalah mengambil 8 karakter alphanumerik yang kita simpan sebagai array secara acak dan menggabungkannya sebagai sebuah string. Pada contoh ini dibatasi hanya 8 karakter, akan tetapi bisa disesuaikan dengan kebutuhan. Wah Gampang sekali ?

Sekarang pada bagian verifikasinya. Karena kata awal tadi sudah tersimpan pada session, maka yang perlu kita bandingkan hanyalah input yang dikirimkan user dengan nilai dari session yang tadi sudah kita buat di awal

if ($code != $_SESSION[‘random-words’])
{
echo “Kode Tidak Cocok!”;
}
else
{
echo “Kode Cocok!”;
}

Lalu bagaimana dengan pembuatan gambarnya sendiri? Cukup mudah!! Buat file bernama captcha.php yang berisi

session_start();
header(”Content-type: image/png”);
$image = imagecreate(80, 15);
$bg_color = imagecolorallocate($image, 255, 255, 255);
$text_color = imagecolorallocate($image, 0, 0, 0);
imagestring($image, 20, 0, 0, $_SESSION[‘random-words’], $text_color);
imagepng($image);
imagedestroy($image);

Baris 1 digunakan untuk menjalankan session. Perintah ini diperlukan, karena kita perlu mengakses nilai yang tersimpan pada session (informasi kata yang hendak dikonversi kedalam bentuk gambar).

Baris 2 digunakan untuk menentukan tipe data yang akan dihasilkan oleh halaman ini. Pada contoh ini tipe data yang dipakai adalah citra dengan format PNG (Anda bisa mengganti dengan JPEG atau format gambar yang lain).

  • Baris 3 digunakan untuk membuat sebuah palet gambar dengan ukuran yang telah ditentukan.
  • Baris 4 digunakan untuk mengalokasikan warna background untuk gambar (disini kita memilih warna putih)
  • Baris 5 digunakan untuk mengalokasikan warna untuk teks (warna hitam)
  • Baris 6 digunakan untuk membuat sebuah teks dengan warna dan ukuran font yang telah ditentukan (dipakai 20)
  • Baris 7 digunakan untuk membuat gambar yang dimaksud
  • Baris 8 digunakan untuk mengapus resource yang telah dibuat

Hasilnya bisa dilihat dibawah:

Contoh diatas merupakan versi paling sederhana. Jika Anda berminat, Anda bisa menambahkan berbagai efek yang mampu mempersulit pembacaan, seperti dengan menambahkan berbagai efek-efek lain yang biasa Anda temui pada implementasi CAPTCHA pada berbagai situs besar.

Sumber: actualtraining.wordpress.com

13 comments

  1. buatkan jak lah… nda ngerti. ini yang model pak veri nyuruh vi kasi ke blog dolok kee?:d:”>
    btw, camane tawaran kemarin sewa unlimited hosting bagi 2….

  2. thanks buat tips nya patut di coba…:)>-:)>-

    jendri’s last blog post..Kejujuran dan saling percaya??

  3. Fad.. guest book kok gak ada kolom pengisiannya? 🙁

    morokoa’s last blog post..Money Politic Caleg Golkar Dilimpahkan ke Gakumdu

  4. iya itu cuman turing number buat dimasukan di guestbook atau shoutbox aja :D:”>

    Adnub’s last blog post..Anti Spamer pada “Form” GuestBook

  5. Hi, interesting post. I have been pondering this topic,so thanks for posting. I will certainly be coming back to your posts.

  6. World Indian Drugs Leader – We have one function and one function only, to save you money on your medication. We provide top-quality products, world-class customer service, excellent value for money, and we welcome your feedback. Try us – you will not be disappointed!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.