Zoque.Forum
»
Mysqllere zarar flood sapıklığı!
|
| Veritabanları MySQL , MSSQL, SQL, Access, Oracle |
![]() |
|
|
LinkBack | Seçenekler |
|
|
#1 (permalink) |
|
Mysqllere zarar flood sapıklığı!
Ben böyle dandik bir bug görmedim. X sitesinde uyelik sistemi olan bir site diyelim. Herhangi bir flood programiyla
www.xxx.com/user.php?mail=cenk@flythy.com&op=1 (bu kendi sistemimdeki injection açığı, aynı şekilde forgot pass olayındaki alanları bulan herkes her sisteme (Vbulletin dahil) yapabilir.) aynen bu adresi flood programına yazıp dakikada 100 150 kere mail göndertebiliyor ve dolayısıyla serverin gücüne bağlı olarak MySQL ve mail server patlıyor. 1 saat açılmıyor. Ben bu lamerleri nasıl önlerim? (PHP) Aklıma bir yöntem geldi fakat arasamda scriptini bulamadım. Sıfırdan kendimde o kadar iyi bilmediğim için yazamadım. Aklıma gelen yöntem şu şekilde. Aynı ıp numarasından siteye 5 dakikada en fazla 3 user bağlanabilirse bu olayı başaramazlar. Yardım edebilecek birileri var mı? |
|
|
|
|
|
|
#2 (permalink) |
|
Üyelik Tarihi: 06.07.2001
Yer: Ankara
Yaş: 33
Mesaj: 679
|
Re: Mysqllere zarar flood sapıklığı!
GD desteği varsa şu resimdaki yazıyı tanıyıp yazdırma yöntemini kullanabilirsin. Kod olarak daha önce hiç incelemedim ama fazla zor değildir.
bu link örnek olabilir: http://www.devshed.com/c/a/PHP/Secur...d-ImageMagick/
__________________
uzaytek.com |
|
|
|
|
|
#3 (permalink) |
|
Üyelik Tarihi: 30.09.2001
Yer: istanbul
Yaş: 27
Mesaj: 415
|
Re: Mysqllere zarar flood sapıklığı!
ayrıca MySQL e baglanmadan önce http_referrer ının senin siten olup olmadgini kontrol ettirebilirsin.
bu arada dandik bir bug dedigin şey aslında bir bug degil.. dünyadaki en iyi sitelerin bile birinci sorunudur flood.. bunu scriptle sadece MySQL e mailservera floodu engellersin işte.
__________________
:::: AnIL'dan bu kadar::::: |
|
|
|
|
|
#4 (permalink) |
|
Mesaj: n/a
|
Re: Mysqllere zarar flood sapıklığı!
ben ASP'de şu şekilde önlemeye çalışıyorum bu olayı.:
'//Burası formun gönderildiği sayfa Private Sub IslemZamanSiniri(BlockTime) Session.LCID = 1055 Session("AddingNewUSerControlFlood") = "YesThisIsControl" Session.TimeOut = BlockTime End Sub If Session("AddingNewUSerControlFlood") = "YesThisIsControl" Then Response.Write "Hata !" Response.End End If StrSQL = "insert into tbluser (UMail,UName,USurname) values ('"& StrInpMail &"','"& StrInpName &"','"& StrInpSurname &"')" Set ObjAddNewUser = ConnMy.Execute(StrSQL) Set ObjAddNewUser = Nothing Call IslemZamanSiniri(15) Böylece veritabanına bilgi kaydedildiği anda "IslemZamanSiniri(15)" içindeki süre kadar bloklanlıyor. Tabi bu tam bir çözüm değil. Bu flood programlarının session.abandon özelliği felan vardır herhalde tam olarak bilemiyorum. |
|
|
|
#6 (permalink) |
|
Re: Mysqllere zarar flood sapıklığı!
Neyse bir arkadaşım sağolsun ayarladı bişeyler. Bayağıda engelledi.
Kod:
<?PHP
$handler= $conID = mysql_connect ("localhost","DBUSER","DBSIFRE"); mysql_select_db("horozz" , $conID); //Senin Database bağlantın
$db_table = "onlineziyaretci";
$timeout="1"; //dakika ayari
$zeit =time();
$loeschzeit=$zeit-($timeout*60);
$ip= getenv(REMOTE_ADDR);
$file= $PHP_SELF;
$kontrol=mysql_query("SELECT * FROM $db_table",$handler);
$kontrol_sayisi= mysql_numrows($kontrol);
$kontrol_ip= mysql_query("SELECT * FROM $db_table WHERE (ip LIKE '$ip')",$handler);
$kontrol_ip_sayisi= mysql_numrows($kontrol_ip);
if ($kontrol_ip_sayisi>7) {echo "Sitede 1 dakikada yapilacak islem sinirini astiniz. Lütfen 1 dakika sonra isleminize devam ediniz."; mysql_close($conID); exit;} //Kaç IP olduğunu belirle
//Database-Commands
$result=mysql_query("INSERT INTO $db_table VALUES ('$zeit','$ip','$file','$gotuser')",$handler);
$result=mysql_query("DELETE FROM $db_table WHERE zeit<'$loeschzeit'",$handler);
$result=mysql_query("SELECT DISTINCT ip FROM $db_table",$handler);
$onlineziyaretci=mysql_numrows($result);
?>
![]() |
|
|
|
|
|
|
#7 (permalink) |
|
Üyelik Tarihi: 01.11.2000
Yer: İstanbul
Yaş: 26
Mesaj: 714
|
Re: Mysqllere zarar flood sapıklığı!
ip ile kontrol güvenilir birşey değil ama. Firewall kullanan onlarca bilgisayar aynı ip'yi kullanıyor. Oysa açılan her bir browser penceresi için web server bir session id atıyor. Bu nedenle senin için daha uygun.
__________________
life is better without braces |
|
|
|
Zoque'a hoşgeldiniz!