PHP ile flooda karşı güvenlik kodu
Veritabanina kayit yaptiginiz sayfalarda kullanabileceginiz basit bir guvenlik kodunun yapimi ve islevini anlatmak istedim.
PHP:
-
<?
-
if($_GET['act']=='ok'){ // get ile gelen 'act' verisi esitse 'ok' a
-
if($_POST['SecInput']==$_SESSION['Sec']){ // post ile gelen SecInput esitse Sec isimli sessionuna
-
}else{ // SecInput esit degilse Sec isimli sessionuna
-
echo 'guvenlik kodu yanlis<br><a href="#" onClick="history.back(-1);">geri</a>'; // guvenlik kodu yanlis geri don diyoruz
-
}
-
}else{ // get ile gelen act verisi esit degilse 'ok' a
-
$_SESSION['Sec']=$SecCode; // $SecCode isimli degisgenimizi Sec isimli sessionumuza esitledik
-
echo '<b>Guvenlik kodu:</b> '.$SecCode.'<form action="'.$_SERVER['PHP_SELF'].'?act=ok" method="POST"><input type="text" name="SecInput" /><input type="submit" value="OK"></form>'; // ekrana guvenlik formu bastik, guvenlik kodunun yazilacagi inputa SecInput ismini verdik form action POST kullandik
-
}
-
?>
Yukarıdaki çalışmayı mantığı anlamanız için yapmıştım, şimdi de resimli güvenlik kodu yapalım.
PHP:
-
<?
-
if($_GET['act']=='ok'){ // get ile gelen 'act' verisi esitse 'ok' a
-
if($_POST['SecInput']==$_SESSION['Sec'] && !$_POST['SecInput']==''){ // post ile gelen SecInput esitse Sec isimli sessionuna
-
}else{ // SecInput esit degilse Sec isimli sessionuna
-
echo 'guvenlik kodu yanlis<br><a href='.$_SERVER['HTTP_REFERER'].'>geri</a>';// guvenlik kodu yanlis geri don diyoruz
-
}
-
}elseif($_GET['s']=='img'){
-
$y = 60;
-
$g = 20;
-
$code = imagecreate($y, $g);
-
$bgc = imagecolorallocate($code, 0, 0, 0);
-
$tc = imagecolorallocate($code, 255, 255, 255);
-
imagefill($code, 0, 0, $tc);
-
imagestring($code, 3, 10, 3, $_SESSION['Sec'], $bgc);
-
imagejpeg($code);
-
imagedestroy($code);
-
}
-
else{
-
$_SESSION['Sec']=$SecCode; // Sec isimli sessiona da guvenlik kodumuzu esitledik
-
echo '<b>Guvenlik kodu:</b> <img src='.$_SERVER['PHP_SELF'].'?s=img><form action="'.$_SERVER['PHP_SELF'].'?act=ok" method="POST"><input type="text" name="SecInput" /><input type="submit" value="OK"></form>'; // ekrana guvenlik formu bastik, guvenlik kodunun yazilacagi inputa SecInput ismini verdik form action POST kullandik
-
}
-
?>
Herhangi bir sorun veya aksilik olursa yardımcı olmaya çalışırım.
Etiketler: code, guvenlik, güvenlik, kod, php, security, session

(9 oy ortalamasi: 4.78 / 5)


samet dinçer yazmış: 12.01.2009 saat 17:16
tşk ediyorum
bnm için tek sorun yanlış yazınca güvenlik konunu altında olsaydı dogru oldugunda dier sayfaya geçseydi daha iyi olacaktı ama güzeldi.