Çoklu Girişte IP Ban PHP

Merhaba gönül dostları (böhüü)

PHP syfalarınız için basit bir güvenlik modülüdür. 5 den fazla hatalı girişte 30 dakikalık IP ban koyar ve 30 dakika sonra eğer doğru giriş yaparsa karalisteden o IP yi temizler.

Hadi başlayalım.

Bir tablo oluşturalım

CREATE TABLE `ipguvenlik` (
`id` int(10) unsigned NOT NULL auto_increment,
`userid` text,
`ttime` int(10) default NULL,
`userip` text,
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`),
KEY `id_2` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=146 ;



ve giren IP leri yazdırralım.


$giris_zaman = time();// zamanı alalım
#giriş yapılamadığı her deneme için ayrı ayrı ekleme yapıyoruz tabloya
$guvo = "insert into ipguvenlik (userid , ttime, userip) values ( '$login','$giris_zaman','$REMOTE_ADDR')";

mysql_query($guvo);


Şimdi geldi kontrolü 3 gün boyunca düşündüm nasıl bir kontrol yapsam diye ve sonunda boyle bir algoritma çıkarttım.

$giris_zaman = time();
$tlimit = 10*60; //saniye
$limstamp = time() - $tlimit;
$z = "SELECT * FROM ipguvenlik where userip = '$REMOTE_ADDR' and ttime > '$limstamp'";
$qsonuc = mysql_query($z);
$giris_sayisi=mysql_num_rows($qsonuc);
if (mysql_num_rows($qsonuc) > 4)
{
Header("Location: banned.php");
}else{
giriş yap koduları burada

}

Erhan


Twitter Digg Delicious Stumbleupon Technorati Facebook

Etiketler:

“Çoklu Girişte IP Ban PHP” yazısına gelen cevaplar;





    Yazıya ait Yorum bulunamadı.

Yorum Gönder

İsim

E-mail Adresi

Web Sayfanız (Spamı sevmiyoruz)

Güvenlik Kodu

güvenlik kodu

Mesajınız

Yeni yorumlardan beni haberdar et.

working..