24 April 2008

Membuat script anti spam sederhana dengan PHP

Anti spam adalah semacam kode verifikasi yang diberikan server kepada user atau pengunjung agar request dari user dapat ditindaklanjuti. Antispam biasanya terdapat pada proses registrasi accont pada suatu website seperti pembuatan email. Antispam biasanya terdapat juga pada bagian komentar dan polling dari sebuah webiste. Sesuai dengan namanya antispam bertujuan agar yang mengisi form komnetar atau yang membuat permintaan registrasi benar-benar orang yang berniat untuk itu. Karena bisa saja yang melakukan itu semua telah diprogram secara otomatis oleh orang-orang yang ingin berbuat jahat. Biasanya para spammer bertujuan untuk mengiklankan produk atau website mereka secara otomatis atau untuk membobol server dengan melakukan pemakaian bandwidth besar-besaran.

Untuk mengatasi perilaku spam, maka dibuatlahlah script antispam dengan menggunakan bahasa pemrograman web PHP. Sangat banyak sekarang variasi dari antispam yang kita lihat. Biasanya kode verifikasi yang kita inputkan berupa gabungan huruf dan angka yang bersifat case-sensitive. Ada juga yang terdiri dari kombinasi angka saja. Ada beberpa jenis antispam yang cukup menarik dengan menampilkan dua kata secara acak yang memiliki arti.

Berikut ini contoh sederhana program antispam yang memanfaatkan teknik session dan fungsi grafis yang tersedia pada PHP. Fungis session adalah untuk mencocokan kode verifikasi yang diberikan server dengan kode yang diterima dari user. Di lihat dari penulisan kode sessionnya contoh script di bawah jelas menggunakan program PHP versi 5. Terdapat dua buah file PHP: kode.php untuk menampilkan grafis gambar secara acak dan verifikasi.php untuk proses verfikasi kode yang dimasukkan

kode.php
<?
session_start();
$_SESSION['data_string']=$_POST['data_string'];
// fungsi grafis pada PHP
$kanvas=imagecreate(200,50);
$putih=imagecolorallocate($kanvas,000,000,255);
$kuning=imagecolorallocate($kanvas,255,255,144);
// untuk membangkitkan string secara acak
srand((double)microtime()*1000000);
// enkripsi string baru sebanyak 32 karakter dengan kombinasi huruf dan angka kecil
$string=md5(rand(0,9999));
// karakter acak yang diambil dimulai dari karakter ke-15 sebanyak 5 digit
$data_string=substr($string,15,5);
// menampilkan kode acak di atas gambar
imagefill($kanvas,4,10,$kuning);
imagestring($kanvas,20,50,21,$data_string,$putih);
imagepng($kanvas,"verify.png");
imagedestroy($kanvas);
echo "Untuk kevalidan data, ketikkan kode yang anda lihat pd gambar di bawah(case sensitive)<br><br>
<img src=\"verify.png\"><br><br>
<form action=verifikasi.php method=post>
<input type=text name=kode>
<input type=submit value=Go name=verify>
</form>";
?>


verifikasi.php
<?
session_start();
$data_string=$_SESSION['data_string'];
// fungsi trim untuk menghapus spasi di kanan-kiri tulisan
$kode=trim($_POST['kode']);
if($data_string==$kode){
echo "verifikasi sukses";
}
if($data_string!==$kode){
echo "Maaf, kode yang dimasukkan salah";
}
?>


Demikian cara pembuatan kode verifikasi antispam sederhana semoga bermanfaat

Share with Facebook Share