WordPress’e güvenlik sorusu uygulaması

Kategori: (Web Programlama) Yazan: admin, 07-07-2009

Etiketler : , ,

Bir çok web kullanıcısı botlar tarafından gönderilen mesajlardan şikayetçidir. Bende şuan onlar arasındayım. Siteme hergün sayısız botlar tarafından yorum yapılmakta :D . Bu yüzden bende basit bir kaç php kodu ile bilmediğim wordpress sistemine ufak bir güvenlik sorusu eklentisi yazdım. Aşağıda yorum yapma alanında göreceksiniz .( 13 + 1 = ? gibi ) Bu uygulama ile o kahrolası botların reklam mesajlarından kurtulacağım :) .

Dediğim gibi wordpress hakkında o kadar detaylı bir bilgiye sahip değilim. Bu yüzden dosyaları editleyerek işe başladım. Öncelikle kullandığım temanın comments.php dosyasına yorum alanına eklenti yaptım.

<p>
<?php
$sayi1 = rand(10, 20);
$sayi2 = rand(1, 9);
$islem = array(“+”, “-”);
$islem = $islem[rand(0,1)];

if($islem == “+”) $sonuc = $sayi1 + $sayi2;
else $sonuc = $sayi1 – $sayi2;
?>
<font face=”Arial” size=”2″><b><? echo $sayi1; ?> <? echo $islem; ?> <? echo $sayi2; ?> = ?</b> (İşleminin Sonucu)</font>
<label for=”url”> </label></p>

<p><input type=”text” name=”gkodu” id=”gkodu” value=”" size=”22″ tabindex=”3″ />
<label for=”url”>Güvenlik Kodu</label></p>

Gördüğünüz kodlarla rastgele 10 ile 20 arasında bir sayı ve 1 ile 9 arasında bir sayı seçerek, rastgele toplama ya da çıkarma işlemi yaptırıyorum. Bu işlemi ekrana yazdırıp input alanından kullanıcının girmesini saglıyorum. Kodların biraz altına </form> kapatılmadan önce ise;

<input type=”hidden” name=”sonuc” value=”<?php echo $sonuc; ?>” />

yazdırarak sonucun yorumlanması için gönderimini sağlıyorum. Yorum uygulaması bu kadar. Şimdi ise bu verilerin değerlendirilmesi için ana dizinde bulunan wp-comments-post.php dosyasına bir kaç kod yazalım.

if ( get_option(‘require_name_email’) && !$user->ID ) {
if ( 6 > strlen($comment_author_email) || ” == $comment_author )
wp_die( __(‘Error: please fill the required fields (name, email).’) );
elseif ( !is_email($comment_author_email))
wp_die( __(‘Error: please enter a valid email address.’) );
}

Bu kodların hemen altına;

$gkodu = $_POST["gkodu"];
$sonuc = $_POST["sonuc"];

if(!$gkodu){
wp_die( __(‘Lutfen Guvenlik Kodunu Yaziniz.<br><br><a href=javascript:history.go(-1)><b> << Geri </a>’) );
}

if($gkodu != $sonuc){
wp_die( __(‘Guvenlik kodunu eksik yada yanlis girdiniz.<br><br><a href=javascript:history.go(-1)><b> << Geri </a>’) );
}

yazıyoruz. Böylece kullanıcının yazdığı kod ile sonucun eşit olup olmadığını kontrol edip ona göre ya işlemi bitiriyoruz ya da devam ederek yorumun eklenmesini sağlıyoruz. İyi şanslar, botsuz günler :)

Yorum Yazın

13 - 4 = ? (İşleminin Sonucu)