Saat: 15:14:18 Gösterim: 605
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
Çoklu Girişte IP Ban PHP
EYL
19
İM'le
Yorumlar( 0 )
Yazıya ait Yorum bulunamadı.








