Hosting hesabımdaki bazı web sitelerimde EXTREME bot sorunları yaşıyorum. Botlar, tüm hosting hesabım için CPU kaynaklarının% 98'inden ve bant genişliğimin% 99'undan fazlasını kullanıyor. Bu botlar, sitelerim için saatte 1 GB'tan fazla trafik üretiyor . Tüm bu siteler için gerçek insan trafiği ayda 100 MB'den azdır .
Bu botları engellemek için robots.txt ve .htaccess dosyalarında kapsamlı araştırmalar yaptım ancak tüm yöntemler başarısız oldu.
Ayrıca komut dosyaları dizinlerine erişimi engellemek için robots.txt dosyalarına kod koydum, ancak bu botlar (Google, MS Bing ve Yahoo) kuralları görmezden gelir ve komut dosyalarını yine de çalıştırır.
Google, MS Bing ve Yahoo botlarını tamamen engellemek istemiyorum, ancak orada tarama hızını sınırlamak istiyorum. Ayrıca, robots.txt dosyasına bir Tarama gecikmesi ifadesi eklemek botları yavaşlatmaz. Tüm siteler için mevcut robots.txt ve .htacces kodum aşağıda belirtilmiştir.
Tarama hızını mutlak minimum seviyeye düşürmek için hem Microsoft hem de Google web yöneticisi araçlarını ayarladım, ancak yine de bu sitelere saniyede 10 tıklama hızında vuruyorlar.
Buna ek olarak, bir hataya neden olan her dosya yüklediğimde, VPS web sunucusu tüm saniyeler içinde kapanıyor, böylece siteye erişemiyorum bile, bu botların isabetlerinden dolayı sorunu düzelttim.
Web sitelerime gelen trafiği yerinde durdurmak için ne yapabilirim?
Web barındırma şirketimi (site5.com) geçen aylarda bu konuda birçok kez sormaya çalıştım ve bu sorunla ilgili bana yardımcı olamıyorlar.
Gerçekten ihtiyacım olan Botların rss2html.php betiğini çalıştırmasını engellemektir. Hem oturumları hem de çerezleri denedim ve ikisi de başarısız oldu.
robots.txt
User-agent: Mediapartners-Google
Disallow:
User-agent: Googlebot
Disallow:
User-agent: Adsbot-Google
Disallow:
User-agent: Googlebot-Image
Disallow:
User-agent: Googlebot-Mobile
Disallow:
User-agent: MSNBot
Disallow:
User-agent: bingbot
Disallow:
User-agent: Slurp
Disallow:
User-Agent: Yahoo! Slurp
Disallow:
# Directories
User-agent: *
Disallow: /
Disallow: /cgi-bin/
Disallow: /ads/
Disallow: /assets/
Disallow: /cgi-bin/
Disallow: /phone/
Disallow: /scripts/
# Files
Disallow: /ads/random_ads.php
Disallow: /scripts/rss2html.php
Disallow: /scripts/search_terms.php
Disallow: /scripts/template.html
Disallow: /scripts/template_mobile.html
.htaccess
ErrorDocument 400 http://english-1329329990.spampoison.com
ErrorDocument 401 http://english-1329329990.spampoison.com
ErrorDocument 403 http://english-1329329990.spampoison.com
ErrorDocument 404 /index.php
SetEnvIfNoCase User-Agent "^Yandex*" bad_bot
SetEnvIfNoCase User-Agent "^baidu*" bad_bot
Order Deny,Allow
Deny from env=bad_bot
RewriteEngine on
RewriteCond %{HTTP_user_agent} bot\* [OR]
RewriteCond %{HTTP_user_agent} \*bot
RewriteRule ^.*$ http://english-1329329990.spampoison.com [R,L]
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
# Block out any script trying to base64_encode crap to send via URL
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
# Block out any script that includes a <script> tag in URL
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Send all blocked request to homepage with 403 Forbidden error!
RewriteRule ^(.*)$ index.php [F,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ [NC]
RewriteRule (.*) index.php
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
# Don't show directory listings for directories that do not contain an index file (index.php, default.asp etc.)
Options -Indexes
<Files http://english-1329329990.spampoison.com>
order allow,deny
allow from all
</Files>
deny from 108.
deny from 123.
deny from 180.
deny from 100.43.83.132
EK KULLANICI AJAN BOT KONTROL KODUNU GÖSTERMEK İÇİN GÜNCELLEME
<?php
function botcheck(){
$spiders = array(
array('AdsBot-Google','google.com'),
array('Googlebot','google.com'),
array('Googlebot-Image','google.com'),
array('Googlebot-Mobile','google.com'),
array('Mediapartners','google.com'),
array('Mediapartners-Google','google.com'),
array('msnbot','search.msn.com'),
array('bingbot','bing.com'),
array('Slurp','help.yahoo.com'),
array('Yahoo! Slurp','help.yahoo.com')
);
$useragent = strtolower($_SERVER['HTTP_USER_AGENT']);
foreach($spiders as $bot) {
if(preg_match("/$bot[0]/i",$useragent)){
$ipaddress = $_SERVER['REMOTE_ADDR'];
$hostname = gethostbyaddr($ipaddress);
$iphostname = gethostbyname($hostname);
if (preg_match("/$bot[1]/i",$hostname) && $ipaddress == $iphostname){return true;}
}
}
}
if(botcheck() == false) {
// User Login - Read Cookie values
$username = $_COOKIE['username'];
$password = $_COOKIE['password'];
$radio_1 = $_COOKIE['radio_1'];
$radio_2 = $_COOKIE['radio_2'];
if (($username == 'm3s36G6S9v' && $password == 'S4er5h8QN2') || ($radio_1 == '2' && $radio_2 == '5')) {
} else {
$selected_username = $_POST['username'];
$selected_password = $_POST['password'];
$selected_radio_1 = $_POST['group1'];
$selected_radio_2 = $_POST['group2'];
if (($selected_username == 'm3s36G6S9v' && $selected_password == 'S4er5h8QN2') || ($selected_radio_1 == '2' && $selected_radio_2 == '5')) {
setcookie("username", $selected_username, time()+3600, "/");
setcookie("password", $selected_password, time()+3600, "/");
setcookie("radio_1", $selected_radio_1, time()+3600, "/");
setcookie("radio_2", $selected_radio_2, time()+3600, "/");
} else {
header("Location: login.html");
}
}
}
?>
Ayrıca rss2html.php betiğinin en üstüne şunu ekledim
// Checks to see if this script was called by the main site pages, (i.e. index.php or mobile.php) and if not, then sends to main page
session_start();
if(isset($_SESSION['views'])){$_SESSION['views'] = $_SESSION['views']+ 1;} else {$_SESSION['views'] = 1;}
if($_SESSION['views'] > 1) {header("Location: http://website.com/index.php");}
rss2html.php
Siteniz tarafından nasıl kullanılıyor? PHP ile içerir, yönlendirmeler, Ajax ....?
file_get_contents
...? Oldukça tuhaf görünüyor. Dosya başka bir sunucuda mı?
robots.txt
? Robotların güncellenmiş sürümü okuması zaman alabilir.