как запретить crawler 360Spider с роботами.txt или.реврайт?
у меня проблемы из-за 360Spider: этот бот делает слишком много запросов в секунду к моему VPS и замедляет его (использование процессора становится 10-70%, но обычно у меня 1-2%). Я заглянул в журналы httpd и увидел там такие строки:
182.118.25.209 - - [06/Sep/2012:19:39:08 +0300] "GET /slovar/znachenie-slova/42957-polovity.html HTTP/1.1" 200 96809 "http://www.hrinchenko.com/slovar/znachenie-slova/42957-polovity.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.0.11) Gecko/20070312 Firefox/1.5.0.11; 360Spider
182.118.25.208 - - [06/Sep/2012:19:39:08 +0300] "GET /slovar/znachenie-slova/52614-rospryskaty.html HTTP/1.1" 200 100239 "http://www.hrinchenko.com/slovar/znachenie-slova/52614-rospryskaty.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.0.11) Gecko/20070312 Firefox/1.5.0.11; 360Spider
etc.
как я могу полностью заблокировать этого паука с помощью роботов.txt? Теперь мои роботы.тхт выглядит так:
User-agent: *
Disallow: /cgi-bin/
Disallow: /tmp/
User-agent: YoudaoBot
Disallow: /
User-agent: sogou spider
Disallow: /
я добавил строки:
User-agent: 360Spider
Disallow: /
но это, похоже, не работает. Как заблокировать это злой бот?
если вы предлагаете заблокировать ее через .htaccess, так что имейте в виду, что теперь это выглядит так:
# Turn on URL rewriting
RewriteEngine On
# Installation directory
RewriteBase /
SetEnvIfNoCase Referer ^360Spider$ block_them
Deny from env=block_them
# Protect hidden files from being viewed
<Files .*>
Order Deny,Allow
Deny From All
</Files>
# Protect application and system files from being viewed
RewriteRule ^(?:application|modules|system)b.* index.php/ [L]
# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Rewrite all other URLs to index.php/URL
RewriteRule .* index.php/ [PT]
и, несмотря на наличие
SetEnvIfNoCase Referer ^360Spider$ block_them
Deny from env=block_them
этот бот все еще пытается убить мой VPS и регистрируется в журналах доступа.
8 ответов
ваши роботы.тхт кажется правильным. Некоторые боты просто игнорируют (боты ползают с любого IP-адреса из любой бот-сеть из сотни миллионов зараженных устройств со всего мира), в этом случае можно ограничить количество запросов в секунду, используя mod_security модуль для apache 2.X
пример конфигурации здесь:http://blog.cherouvim.com/simple-dos-protection-with-mod_security/
[EDIT] на linux, iptables также позволяет ограничить соединения tcp: port в(x) секунду (ы) на ip, обеспечивая возможности conntrack включены на вашем ядре. Смотри:https://serverfault.com/questions/378357/iptables-dos-limit-for-all-ports
в вашей .файл htaccess просто добавьте следующую строку :
RewriteCond %{REMOTE_ADDR} ^(182\.118\.2) RewriteRule ^.*$ http://182.118.25.209/take_a_hike_moron [R=301,L]
Это поймает всех ботов, запускаемых с 182.118.2 xx.xxx диапазон и отправить их обратно к себе...
дерьмовый 360 бот увольняется с серверов в Китае... так что пока вы не против попрощаться с дерьмовым китайским трафиком из этого диапазона IP, это гарантированно заставит этих щенков исчезнуть из любых файлов на вашем веб-сайте.
в следуя двум строкам в вашем .htaccess файл также будет забрать его просто, будучи достаточно глупым, чтобы с гордостью положить 360spider в строке агента пользователя. Это может быть удобно, когда они используют другие диапазоны IP, а затем 182.118.2 xx.xxx
RewriteCond %{HTTP_USER_AGENT} .*(360Spider) [NC] RewriteRule ^.*$ http://182.118.25.209/take_a_hike_moron [R=301,L]
и да... Я их тоже ненавижу !
вы можете поместить следующие правила в ваш
RewriteEngine On
RewriteBase /
SetEnvIfNoCase Referer 360Spider$ block_them
Deny from env=block_them
Примечание: модуль Apache mod_setenvif
должен быть включен в конфигурацию сервера
человек, управляющий краулером, может игнорировать роботов.формат txt. Вы можете заблокировать их через IP
приказ отказать, разрешить
отказать от 216.86.192.196
in .реврайт
у меня есть строки в моем .htaccess
файл, как это, чтобы блокировать плохие боты:
RewriteEngine On
RewriteCond %{ENV:bad} 1
RewriteCond %{REQUEST_URI} !/forbidden.php
RewriteRule (.*) - [R=402,L]
SetEnvIf Remote_Addr "^38\.99\." bad=1
SetEnvIf Remote_Addr "^210\.195\.45\." bad=1
SetEnvIf Remote_Addr "^207\.189\." bad=1
SetEnvIf Remote_Addr "^69\.84\.207\." bad=1
# ...
SetEnvIf Remote_Addr "^221\.204\." bad=1
SetEnvIf User-agent "360Spider" bad=1
он отправит код состояния 402 Payment Required
для всех занесенных в черный список IPs / user-agents.
вы можете поместить все, что хотите, отображаемое боту в forbidden.php
.
Это довольно эффективным.
Мне просто пришлось заблокировать 360Spider. Решено с StreamCatcher на IIS (IIS7), который, к счастью, уже был установлен, поэтому потребовалось только небольшое изменение конфигурации. Подробности вhttp://needs-be.blogspot.com/2013/02/how-to-block-spider360.html
Я использую следующее, И это помогает много! Проверьте HTTP_USER_AGENT на наличие плохих ботов
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/robots\.txt$
RewriteCond %{REQUEST_URI} !^/error\.html$
RewriteCond %{HTTP_USER_AGENT} EasouSpider [NC,OR]
RewriteCond %{HTTP_USER_AGENT} YisouSpider [NC,OR]
RewriteCond %{HTTP_USER_AGENT} Sogou\ web\ spider [NC]
RewriteCond %{HTTP_USER_AGENT} 360Spider [NC,OR]
RewriteRule ^.*$ - [F,L]
</IfModule>
<Location />
<IfModule mod_setenvif.c>
SetEnvIfNoCase User-Agent "EasouSpider" bad_bot
SetEnvIfNoCase User-Agent "YisouSpider" bad_bot
SetEnvIfNoCase User-Agent "LinksCrawler" bad_bot
Order Allow,Deny
Allow from All
Deny from env=bad_bot
</IfModule>
</Location>