Öncelikle geçmiş olsun. Benimde illallah ettiğim bir sıkıntıydı bu. Spam hit, ddos ve botnet saldırıları...

Birçok yol denedim ama nafile kurtulamadım, sonrasında bir yazılım geliştirdim ve rahatladım. Hatta bu mesajı yazarken bile sitede anlık 2k'dan fazla botnet var ama kesinlikle etkilenmiyorum.

Yazdığım kodu sizlerle de paylaşıyorum, umarım işinizi görür. Kodu site kaynak kodunuzun en başına eklerseniz sorununuz çözülür. Her türlü spam hit, botnet veya ddos saldırı istatistiklere veya adsenseye gözükmeden yok olur gider. Sadece çok az bir miktarda trafik olarak etkilenirsiniz başkada bişey olmaz.

Şunu belirteyim: Bu kod her türlü ziyaretçinin internet explorer veya bilinmeyen bir tarayıcıdan girişini engeller. Gelen sunucu kaynaklı spam hitler, ddos veya botnetler %99 internet explorer üzerinden %1 bilinmeyen özellikteki tarayıcı üzerinden gelir. Dolayısıyla bu kodu ekleyerek siz normal ziyaretçiye de internet explorer üzerinden girişi yasaklamış oluyorsunuz. Başka çözümü yok malasef. Ya extra para ödeyip sunucu şirketinizden firewall alacaksınız yada ücretli cloudflare kullanacaksınız, veya bu kod. Karar sizin

<?php

function getBrowser() { 
     $u_agent = $_SERVER['HTTP_USER_AGENT']; 
     $bname = 'Bilinmiyor';
     $platform = 'Bilinmiyor';
     $version= "";
     //Hangi platformdan gelmiş, Linux, Windows, MacOSX?
     if (preg_match('/linux/i', $u_agent)) {
         $platform = 'linux';
     }
     elseif (preg_match('/macintosh|mac os x/i', $u_agent)) {
         $platform = 'mac';
     }
     elseif (preg_match('/windows|win32/i', $u_agent)) {
         $platform = 'windows';
     }    
     //Sonra hangi tarayıcı olduğuna  göz atalım
     if(preg_match('/MSIE/i',$u_agent) && !preg_match('/Opera/i',$u_agent)) 
     { 
         $bname = 'Internet Explorer'; 
         $ub = "MSIE"; 
     } 
     elseif(preg_match('/Firefox/i',$u_agent)) 
     { 
         $bname = 'Mozilla Firefox'; 
         $ub = "Firefox"; 
     } 
     elseif(preg_match('/Chrome/i',$u_agent)) 
     { 
         $bname = 'Google Chrome'; 
         $ub = "Chrome"; 
     } 
     elseif(preg_match('/Safari/i',$u_agent)) 
     { 
         $bname = 'Apple Safari'; 
         $ub = "Safari"; 
     } 
     elseif(preg_match('/Opera/i',$u_agent)) 
     { 
         $bname = 'Opera'; 
         $ub = "Opera"; 
     } 
     elseif(preg_match('/Netscape/i',$u_agent)) 
     { 
         $bname = 'Netscape'; 
         $ub = "Netscape"; 
     }   
     // Tarayıcının versiyon numarasını tespit edelim.
     // burada düzenli ifadeler kullanarak bakıyoruz.
     $known = array('Version', $ub, 'other');
     $pattern = '#(?<browser>' . join('|', $known) .
     ')[/ ]+(?<version>[0-9.|a-zA-Z.]*)#';
 
     if (!preg_match_all($pattern, $u_agent, $matches)) {
         // buraya kadar bulamadık, aramaya devam
     }
     $i = count($matches['browser']);
     if ($i != 1) {
 
         if (strripos($u_agent,"Version") < strripos($u_agent,$ub)){
             $version= $matches['version'][0];
         }
         else {
             $version= $matches['version'][1];
         }
     }
     else {
         $version= $matches['version'][0];
     }
     
     if ($version==null || $version=="") {$version="?";}
     
     return array(
         'userAgent' => $u_agent,
         'name'      => $bname,
         'version'   => $version,
         'platform'  => $platform,
         'pattern'    => $pattern
     );
 }

$tarayici = getBrowser();

if ($tarayici['name']=='Internet Explorer'){
echo '<!DOCTYPE html><html lang="tr_TR" xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><title>Giriş Kapalı</title></head><body><div style="margin-top:100px; position:relative;"><center><h2><span color="red" style="color:red;">Sitemiz</span> bu tarayıcıda hizmete kapalıdır. Lütfen <span color="red" style="color:red;">farklı</span> bir tarayıcı kullanın!</h2></center></div></body></html>';
exit();
}
if ($tarayici['name']=='Bilinmiyor'){
echo '<!DOCTYPE html><html lang="tr_TR" xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><title>Giriş Kapalı</title></head><body><div style="margin-top:100px; position:relative;"><center><h2><span color="red" style="color:red;">Sitemiz</span> bu tarayıcıda hizmete kapalıdır. Lütfen <span color="red" style="color:red;">farklı</span> bir tarayıcı kullanın!</h2></center></div></body></html>';
exit();
}

?>
İşinizi görürse ilk mesaja alıntılarsınızki sıkıntısı olan herkes bu problemden kurtulsun.