Membuat program Humanity Code / Spam Prevention dengan php



Sekarang metode / cara anti auto submitter atau istilah lainnya humanity code atau ada pula

yang menyebutnya Spam preventer telah digunakan dimana-mana sebagai tindakan pengamanan

pengisian form dari program otomatis yang dibuat untuk mengumpulkan data

secara otomatis pula.

Istilah ini mungkin terasa asing di telinga anda, tetapi saya yakin metode / cara ini sudah sering anda

temukan dimana-mana.




Misalnya saat anda :

1. membuat / membuka account email baru

2. mengisi komentar di guestbook website orang lain

3. mengirimkan komentar di webblog tertentu

4. mengisi berulang-ulang komentar di shoutbox tertentu

5. mendownload program gratisan

6. melakukan register di forum-forum diskusi , milis

7. menggunakan jasa-jasa gratis seperti mengirimkan SMS,Live Chat,Instant Messaging

8. dan lain-lain.


Biasanya tampilannya berupa, Input Code Shown Below dan dibawahnya

terdapat perpaduan angka-angka dan abjad yang telah diacak dengan format gambar (miring ke kanan-miring ke kiri).


Jika anda tertarik, mari ikuti program sederhana yang saya tuliskan di artikel kali ini, yang ditulis dengan php,

jadi anda bisa mencoba menjalankannya di localhost server anda atau hosting gratis yang mendukung server script php,

dengan library gambar juga terinstall di dalamnya (pada dasarnya semuanya sudah di setting default):


Program ini terbagi menjadi 2 file yang dihubungkan dengan sebuah “session”.

1. File yang satu bertugas melakukan pengacakan / randomizing angka, kemudian angka tersebut

dikirimkan kepada browser menjadi format gambar (saya namakan ANTISPAM.PHP).


2. File yang lainnya bertugas mengumpulkan informasi data yang diisi oleh user, kemudian

data tersebut dicocokkan dengan HASIL PENGACAKAN yang dilakukan file pertama diatas (baca: ANTISPAM.PHP).


Untuk mengerti jalan / alur program ini, setidaknya anda mempunyai basic pemograman php (atau yang lainnya, php sangat mudah dipelajari)

dan setidaknya anda mengerti header-header protokol HTTP / 1.1.


untuk mempelajari protokol HTTP, anda bisa mengunjungi :

http://www.faqs.org/rfcs/rfc2616.html

Jika anda sudah menguasai protokol tersebut dan anda mengerti bahasa programming, anda pasti dapat membuat program web server

walaupun saya ragu akan menandingi Apache,IIS,dll.


Berikut source code 2 file tersebut yang saya selipi baris-baris komentar sehingga anda mengerti apa fungsi-fungsi tiap “function” yang ada :

1. File ANTISPAM.PHP

// SESSION HARUS DIAKTIFKAN UNTUK BERKOMUNIKASI DENGAN FILE LAIN

session_start();
// MENCARI NOMOR ACAK UNTUK MENDAPATKAN 5 DIGIT ANGKA

$rand = rand(10000, 99999);


// MENDAPATKAN ANGKA YANG TELAH DI RANDOM DAN DI HASHING, LALU DISIMPAN KE DALAM SESSION

// NANTINYA SESSION INI AKAN DIKIRIMKAN KE FILE LAIN UNTUK VERIFIKASI

// INI MERUPAKAN BAGIAN PALING PENTING

$_SESSION['image_random_value'] = md5($rand);


// SIAP-SIAP MEMBUAT GAMBAR

$image = imagecreate(60, 30);


// MEMBUAT LATAR BELAKANG GAMBAR BERWARNA PUTIH

$bgColor = imagecolorallocate ($image, 255, 255, 255);


// the text color is black

$textColor = imagecolorallocate ($image, 0, 0, 0);


// MELETAKKAN ANGKA TADI KE DALAM FORMAT GAMBAR

imagestring ($image, 5, 5, 8, $rand, $textColor);


// === BAGIAN HEADER HTTP ==

// SELALU MEMBUAT MASA BERLAKU SESSION HABIS

header(“Expires: Mon, 26 Jul 1997 05:00:00 GMT”);

header(“Last-Modified: ” . gmdate(“D, d M Y H:i:s”) . ” GMT”);


// HTTP/1.1

header(“Cache-Control: no-store, no-cache, must-revalidate”);

header(“Cache-Control: post-check=0, pre-check=0″, false);


// TIDAK BOLEH DISIMPAN KE CACHE

header(“Pragma: no-cache”);


// MEMBERITAHUKAN KEPADA BROWSER, BAHWA INI MERUPAKAN FILE GAMBAR

header(‘Content-type: image/jpeg’);


// === END OF HEADER HTTP ==

// === BACA DI RFC 2616 —> http://www.faqs.org/rfcs/rfc2616.html


// === MEMBUAT GAMBAR KE BROWSER ==

imagejpeg($image);

// MEMBEBASKAN IMAGE DARI MEMORI ..

imagedestroy($image);

?>

2. FILE INDEX.PHP

// SESSION HARUS DIAKTIFKAN UNTUK BERKOMUNIKASI DENGAN FILE LAIN

session_start();
// JIKA METODE POST DIKIRIMKAN

if (isset($_POST['txtNumber'])) {


// ANGKA YANG MASUKKAN DENGAN METODE POST

$number = $_POST['txtNumber'];


// JIKA ANGKA YANG ANDA MASUKKAN SAMA YANG TELAH DIHASHING SAMA DENGAN ANGKA HASHING YANG TELAH

// DIKIRIMKAN MENJADI FILE GAMBAR MAKA VERIFIKASI BENAR


if (md5($number) == $_SESSION['image_random_value'])

echo “Anda berhasil memasukkan nomor verifikasi”;

else

echo “Angka yang anda masukkan salah. Coba lagi”;


}

?>





Test image verification / Anti Auto Submitter / Spam Prevention / Humanity Code










Masukkan Angka sesuai gambar disamping anda :














Twitter Delicious Facebook Digg Stumbleupon Favorites More