Pages

Labels

Diberdayakan oleh Blogger.

Selasa, 04 Juni 2013

Apa Itu CAPTCHA


CAPTCHA


Bagi sebagian besar pengguna internet, istilah CAPTCHA masih terasa asing untuk didengar dan dimengerti. Namun pada kenyataannya hampir seluruh aktifitas dunia maya yang berhubungan dengan form, akan disertakan kode CAPTCHA sebagai Security Code.Security Code?? Ya…CAPTCHA adalah deretan karakter atau symbol yang ditampilkan secara acak pada halaman form berupa gambar samar samar. Pengguna diharuskan menulis deretan karakter tersebut kedalam sebuah field sebagai syarat untuk dapat mengirimkan atau melanjutkan aktifitas pengisian data pada form.
Secara harfiah Captcha singkatan dari ”Completely Automated PublicTuring test to tell Computers and Humans Apart” ( dikutip dari Wikipedia ), dibuat untuk membedakan antara mesin ( bot ) dan manusia. Istilah Captcha ini dicetuskan oleh Luis von Ahn, Manuel Blum, and Nicholas J. Hopper dariCarnegie MellonUniversity, dan John Langford dari IBM pada tahun 2000.
kenapa mesti dibedakan? karena banyak buanget “penjahat form” alias program SPAM COMMENT yang bisa aja menyerang website kita kapanpun dengan tanpa “sopan santun” menyisipkan comment pada guestbook/forum yang isinya bisa berupa promosi atau malah link2 kesitus porno(ih….atut…) . kebayang ga gimana jadinya tampilan web kita?
nah untuk membedakan aktifitas pengisian form yang dilakukan manusia atau bot pada website, maka muncul ide bagaimana melakukan generatingkarakter menjadi image. mengapa harus image? karena bot sementara ini belom ada yang bisa membaca karakter yang sudah digenerate jadi image.
ini ada contoh source code yang bisa dicoba :
captchasecurityimages.php
  <?php session_start();
class CaptchaSecurityImages {
var $font = ‘monofont.ttf’;
function generateCode($characters) {
/* list all possible characters, similar looking characters and vowels have been removed */
$possible = ’23456789bcdfghjkmnpqrstvwxyz’;
$code = ”;
$i = 0;
while ($i < $characters) {
$code .= substr($possible, mt_rand(0, strlen($possible)-1), 1);
$i++;
}
return $code;
}
function CaptchaSecurityImages($width=’120′,$height=’40′,$characters=’5′) {
$code = $this->generateCode($characters);
/* font size will be 75% of the image height */
$font_size = $height * 0.75;
$image = @imagecreate($width, $height) or die(‘Cannot Initialize new GD image stream’);
/* set the colours */
$background_color = imagecolorallocate($image, 255, 255, 255);
$text_color = imagecolorallocate($image, 255, 10, 10);
$noise_color = imagecolorallocate($image, 10, 00, 200);
/* generate random dots in background */
for( $i=0; $i<($width*$height)/3; $i++ ) {
imagefilledellipse($image, mt_rand(0,$width), mt_rand(0,$height), 1, 1, $noise_color);
}
/* generate random lines in background */
for( $i=0; $i<($width*$height)/250; $i++ ) {
imageline($image, mt_rand(0,$width), mt_rand(0,$height), mt_rand(0,$width), mt_rand(0,$height), $noise_color);
}
/* create textbox and add text */
$textbox = imagettfbbox($font_size, 0, $this->font, $code);
$x = ($width - $textbox[4])/2;
$y = ($height - $textbox[5])/2;
imagettftext($image, $font_size, 0, $x, $y, $text_color, $this->font , $code);
/* output captcha image to browser */
imagejpeg($image);
imagedestroy($image);
$_SESSION['security_code'] = $code;
}
}
$width = isset($_GET['width']) ? $_GET['width'] : ’120′;
$height = isset($_GET['height']) ? $_GET['height'] : ’40′;
$characters = isset($_GET['characters']) ? $_GET['characters'] : ’5′;
header(‘Content-Type: image/jpeg’);
$captcha = new captchasecurityimages($width,$height,$characters); ?>


Form.php

<?php <form name=reguser action=sign.php method=post>
<img src=“captchasecurityimages.php?width=100&height=40&character=5″ /><br />
Security Code: <input id=“security_code” name=“security_code” type=“text” />
<input type=submit></form> ?>


sign.php

<?php session_start();
if(($_SESSION['security_code'] == $_POST['security_code']) && (!empty($_SESSION['security_code'])) )
{
    //ini jika benar;
}
else
{
    //ini jika salah;
} ?>

Terima kasih....

0 komentar:

Posting Komentar