Setelah saya ngepost tentang cracking captcha, pada post ini akan dibahas bagaimana cara agar captcha milik kita sedikit lebih kuat dari ancaman bot/script yang memiliki kemampuan membaca karakter pada image dengan teknik OCR. Pada post sebelumnya sudah disinggung bagaimana membuat captcha yang susah dibaca dengan menambah noise pada image captcha. Yang akan kita lakukan adalah membuat captcha yang memiliki cukup noise sehingga sulit dibaca dengan teknik OCR tersebut.
Langsung saja ke pokok permasalahan membuat captcha pada website, dibawah ini merupakan code pembuat image random captcha. Save dengan nama captcha.php :
<?php session_start(); $width = 100; $height = 40; $length = 5; $baseList = '0123456789abcdfghjkmnpqrstvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $code = ""; $counter = 0; $image = @imagecreate($width, $height) or die('Cannot initialize GD!'); for( $i=0; $i<10; $i++ ) { imageline($image, mt_rand(0,$width), mt_rand(0,$height), mt_rand(0,$width), mt_rand(0,$height), imagecolorallocate($image, mt_rand(150,255), mt_rand(150,255), mt_rand(150,255))); } for( $i=0, $x=0; $i<$length; $i++ ) { $actChar = substr($baseList, rand(0, strlen($baseList)-1), 1); $x += 10 + mt_rand(0,10); imagechar($image, mt_rand(10,5), $x, mt_rand(6,20), $actChar, imagecolorallocate($image, mt_rand(0,155), mt_rand(0,155), mt_rand(0,155))); $code .= $actChar; } header('Content-Type: image/jpeg'); imagejpeg($image); imagedestroy($image); $_SESSION['securityCode'] = $code; ?>
Pada form yang akan mengikutsertakan captcha di atas, tinggal tambahkan tag HTML image biasa:
<img src="path/to/captcha.php" />
Terakhir adalah halaman verifikasi kode captcha input dari user dibandingkan dengan kode captcha yang valid yang diambil dari variabel $_SESSION[‘securityCode’]. Contoh kode dibawah ini hanya memperlihatkan penggunaan kode captcha di atas secara garis besar yaa. Silahkan dikreasikan untuk kebutuhan aplikasi web nya masing-masing:
<?php session_start(); $captcha1=$_POST["kode_captcha"]; $captcha2=$_SESSION["securityCode"]; if($captcha1==$captcha2){ //congrats! ente not robot euy! then you can do some magic here! } ... ?>
Testing Captcha buatan Kita dengan program Tesseract-OCR
Untuk percobaan keamanan captcha generator baru saya ini, saya menggunakan program Tesseract-OCR. Program akan mendeteksi karakter huruf dan angka yang terdapat pada gambar. Berikut perbandingan hasil antara “captcha lemah” Challenge-1 dengan captcha hasil buatan kita di Challenge-2…
![Challenge-1 Challenge-1](http://blog.tibandung.com/wp-content/uploads/2012/11/welengsek1.png)
![Contoh Captcha Weak Challenge-1 yang Terbaca oleh Tesseract-OCR Contoh Captcha Weak Challenge-1 yang Terbaca oleh Tesseract-OCR](http://blog.tibandung.com/wp-content/uploads/2012/11/captcha-break.png)
Oke, challenge-1 cracked.. Mari kita bandingkan dengan captcha buatan kita ini yang dilengkapi dengan “garis-garis pengecoh” dibelakang karakter-karakter gambar captcha nya…
![Challenge-2 Challenge-2](http://blog.tibandung.com/wp-content/uploads/2012/11/captcha.jpg)
![Captcha Kita (Challenge-2) Tidak dapat Terbaca oleh Tesseract-OCR Captcha Kita (Challenge-2) Tidak dapat Terbaca oleh Tesseract-OCR](http://blog.tibandung.com/wp-content/uploads/2012/11/captcha-hardened.png)
Demikian cara praktis membuat captcha sendiri yang sudah relatif aman dari serangan bot yang sudah dibekali teknik OCR standar.. (Standar loh ya.. hehehe..). Semoga bermanfaat.
terima kasih sudah di sharee
ini yang saya cari, cara buat captchaaa