
05-01-2010, 18:00:34
|
| |
Güvenlik Kodu Uygulaması | | Günümüzde hacker adını verdiğimiz şahıslar hiçbir güvenlik boşluğunu affetmemektedirler.Düne kadar bir formdan giriş yapmak sorun olmuyorken, bugün bir form kontrolsüz olarak istemci tarafında duruyorsa bu form çok rahat şekilde dakikada yüzlerce sorgu yapabilecek bir saldırı aracı haline geliyor.Bunu engellemek için bir çok site güvenlik kodu uygulaması yapıyor.Mantık basitçe PHP’nin GD fonksiyonları kullanılarak üretilen bir grafiğe SESSIOn ataması ile elde edilen değeri formdan ziyaretçiye yazdırmak ve PHP ile bunu kontrol etmekten geçiyor.Aşağıda verdiğim basit uygulama size bu konuda fikir verebilir PHP- Kodu: <form action="kontrol.php" method="POST">
<table width=500 align=center>
<tr><td>Kullanıcı Adi:</td><td>
<input type="text" name="kadi" size=15></td></tr>
<tr><td>Kullanıcı Şifresi:</td><td>
<input type="password" name="sifre" size=15></td></tr>
<tr><td>Güvenlik Kodu:</td><td>
<tr><td><img src='guvenlik.php'></td><td></td><td>
<input type="password" name="kod" size=15><tr><d colspan=2>
<input type="submit" value="Gönder"></td></tr>
</form>
Guvenlik.php PHP- Kodu: <?
session_start();
$sifre = substr(md5(rand(0,999999999999)),-6);
if ($sifre) {
$_SESSION["guv"] = $sifre;
$width = 100;
$height = 30;
$resim = ImageCreate($width,$height);
$beyaz = ImageColorAllocate($resim, 255, 255, 255);
$rand = ImageColorAllocate($resim, rand(0,255), rand(0,255), rand(0,255));
ImageFill($resim, 0, 0, $rand);
ImageString($resim, 5, 24, 7, $_SESSION["guv"], $beyaz);
ImageLine($resim, 100, 19, 0, 19, $beyaz);
header("Content,type: image/png");
ImagePng($resim);
ImageDestroy($resim);
}
?> Kontrol.php PHP- Kodu: <?
session_start();
if (empty($_POST["kod"]) && empty($_SESSION["guv"]) && !$_SESSION["guv"]) {
echo "<a href=form.php>Lütfen giriş yapın</a>";
}else {
if ($_POST["kod"] == $_SESSION["guv"]) {
echo "Uygulama geçerlidir";
}else {
echo "<a href=form.php>Güvenlik kodunu hatalı girdiniz......</a>";
}
}
?> Örnekten de görüleceği gibi yapılan işlem, formandan bilgi almaya dayalı olduğunu görebiliriz. |