как запретить 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 .реврайт


SetEnvIfNoCase User-агент 360Spider заблокирован


у меня есть строки в моем .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>