7

360Spider が原因で問題が発生しました。このボットは、VPS に対して 1 秒あたりのリクエストが多すぎて速度が低下します (CPU 使用率は 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

robots.txt を使用してこのスパイダーを完全にブロックするにはどうすればよいですか? これで、私の robots.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/$0 [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/$0 [PT]

そして、存在しているにも関わらず

SetEnvIfNoCase Referer ^360Spider$ block_them
Deny from env=block_them

このボットはまだ私の VPS を強制終了しようとしており、アクセス ログに記録されています。

4

8 に答える 8

8

.htaccess ファイルに以下を追加するだけです。

RewriteCond %{REMOTE_ADDR} ^(182\.118\.2)

RewriteRule ^.*$ http://182.118.25.209/take_a_hike_moron [R=301,L]

これにより、182.118.2xx.xxx の範囲から起動されているすべてのボットがキャッチされ、ボット自体に送り返されます...

安っぽい 360 ボットは中国のサーバーから解雇されています... その IP 範囲からの安っぽい中国のトラフィックにさよならを言うことを気にしない限り、これはそれらの子犬があなたのウェブサイト上のファイルに到達することから確実に消えることを保証します. .

.htaccess ファイル内の次の 2 行も、誇らしげに 360spider をユーザー エージェント文字列に入れるほど愚かであるという単純な理由で、それを特定します。これは、182.118.2xx.xxx 以外の IP 範囲を使用する場合に便利です。

RewriteCond %{HTTP_USER_AGENT} .*(360Spider) [NC]

RewriteRule ^.*$ http://182.118.25.209/take_a_hike_moron [R=301,L]

そして、はい...私も嫌いです!

于 2013-01-26T00:47:13.000 に答える
7

あなたの robots.txt は正しいようです。一部のボットはそれを無視します (悪意のあるボットは、世界中の数百から数百万の感染デバイスのボットネットの任意の IP アドレスからクロールします)。この場合、apache 2.X のmod_securityモジュールを使用して、1 秒あたりの要求数を制限できます。

設定例はこちら: http://blog.cherouvim.com/simple-dos-protection-with-mod_security/

[編集] Linux では、iptables は、カーネルで conntrack 機能が有効になっている場合、IP ごとに (x) 秒ごとに tcp:port 接続を制限することもできます。参照: https://serverfault.com/questions/378357/iptables-dos-limit-for-all-ports

于 2012-09-06T17:23:06.883 に答える
4

.htaccess次のルールをファイルに入れることができます

RewriteEngine On  
RewriteBase /  
SetEnvIfNoCase Referer 360Spider$ block_them
Deny from env=block_them

注:mod_setenvifサーバー構成で Apache モジュールを有効にする必要があります。

于 2012-09-06T17:20:16.433 に答える
3

クローラーを実行している人が robots.txt を無視している可能性があります。IP

オーダー拒否を介してそれらをブロックし
、216.86.192.196 からの拒否を許可できます。

.htaccess で

于 2012-09-06T17:16:31.973 に答える
0

SetEnvIfNoCaseユーザーエージェント360Spiderがブロックされました

于 2012-12-25T23:12:04.627 に答える
0

.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ブラックリストに登録されているすべての IP / ユーザー エージェントにステータス コードを送信します。

ボットに表示したいものは何でも に入れることができますforbidden.php

それはかなり効果的です。

于 2013-01-15T04:52:27.673 に答える
0

私は以下を使用していますが、とても役に立ちます!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>
于 2014-07-24T21:19:07.960 に答える
0

360Spider をブロックする必要がありました。IIS (IIS7) の StreamCatcher で解決しました。幸いなことに、IIS は既にインストールされているため、構成を少し変更するだけで済みました。詳細はhttp://needs-be.blogspot.com/2013/02/how-to-block-spider360.htmlを参照

于 2013-02-18T00:48:23.537 に答える