白頭spをブロックする方法


15

私の訪問のほとんどは白頭spからです。検索エンジンにはまったく役に立たないと思うので、検索エンジンをブロックする方法を考えています。これはiptablesを介して実行できますか?Webサーバーとしてnginxを使用しています。


2
どうしていけないの?私は中国の交通が欲しくありません。
-Zhianc

6
私はあなたがするべきではないと言っているのではなく、なぜわざわざ困るのかを尋ねているのです。彼らは何らかの形であなたを傷つけていますか?無視するのは簡単ではありませんか?ここでは「中国のトラフィックを望まない」という答えは実際にはありません。ただの外国人嫌いです。また、1つの検索エンジンをブロックすることは、中国語をブロックすることとほとんど同じではないため、実際には意味がありません。障害のある問題に基づいた解決策を模索しているように思えました。しかし、どうやらあなたはarbitrarily意的にクモをブロックしたいだけなので、先に進むと思います。
Su

7
@Su '私は自分のサイトで白頭spが非常に激しくクロールし、正当なトラフィックの停滞を引き起こしていることを発見しました。さらに、私は白頭robots.txtrulesが規則に従わないことも発見しました。
starbeamrainbowlabs

2
Baiduのスパイダーから毎秒1〜2ヒットを受け取ります。ヒットするたびに、サーバー上に新しいセッションファイルが生成されます。これらのセッションファイルを削除するスクリプトがありますが、これらのスパイダーはMySQLサーバーにも負荷をかけます。絶対にブロックしたいです。
バトルビュータス

2
baiduspiderまたはbaiduspiderを装った何かがサイトを非倫理的にクロールし、robots.txtディレクティブを無視することを確認できます。
JMC

回答:


8

robots.txtに追加します

#Baiduspider
User-agent: Baiduspider
Disallow: /

#Yandex
User-agent: Yandex
Disallow: /

5
robots.txtを尊重しない場合はどうなりますか?
-Zhianc

5
私は、中国のIPアドレスからの「Baiduspider / 2.0」アクセスが私のサイトのrobots.txtに従わないことを知っています。また、多くの場合、「Baiduspider」ユーザーエージェントIDを使用しない同じIPアドレスブロックからの協調アクセス(数分間隔)を使用します。
mgkrebbs

Yandexはrobots.txtに準拠しています。私たちのビジネスのかなりの部分がロシアから来ていることに気付き、ブロックを削除しなければならなくなるまで、私はそれらをロックアウトしました。Baidu、ネットブロックを確認する必要があります。Baiduが発表したUAのすべてが実際にBaiduであるわけではないため、正当なBaiduトラフィックに対してrobots.txtブロックを実行し、残っているものについて.htaccessでUA文字列ブロックを実行し、ブロックの識別と拒否によりブロックを実行する必要がありますUA文字列ブロックを回避する残りの部分。トラフィックを処理するためにサーバーを強化するのと同じくらいの作業です。
Fiasco Labs

2
私はUser-agent: *バイススパイダーにアクセスし続けています。
reinierpost

3
Yandexはロシア市場向けの別の検索エンジンであるため、質問でまったく質問されず、それについて何も書かずにここに含めるだけでは、無責任です。
コレクター

7

中国の検索ボットBaiduspiderが私のサイトのコンテンツにアクセスすることをブロックしました。以下の理由により、そうすることを決定しました。

ブロックすることを決定する理由

  1. サーバーへの約20回ごとのリクエストは、baiduボットからでした。これは無礼な動作です。Baidubotは私のサイトの帯域幅使用量の5%を占めています。
  2. 私は自分のサイトのリソースを小さく保ち、ブラウザのキャッシュなどの技術を活用して、速度と帯域幅をわずかに高めるために多くの努力をしています。Baidubotをブロックして、その5%を解放することを検討するのは理にかなっています。
  3. サイトのコンテンツは英国に固有であり、中国語版はなく、収益は英国市場をターゲットとした広告から得られるため、中国のトラフィックを失う可能性はビジネスにとって許容できるリスクです。

だから、Su 'やXenophobiaに関心のある人たちが、この決定が無礼な数のリクエストに対する冷静な対応であることを理解してくれることを願っています。

方法

Baiduspiderは多くの異なるIPアドレスを使用してサーバーにアクセスしますが、これらのアドレスは特定の範囲内にあります。したがって、私の.htaccessファイルには次の行が含まれるようになりました。

order allow,deny 
allow from all
# Block access to Baiduspider 
deny from 180.76.5.0/24 180.76.6.0/24 123.125.71.0/24 220.181.108.0/24 

一番下の行は、基本的にBaiduspiderを知っている4つのIP範囲を示しており、Baiduspiderのみがサーバーにアクセスします。4つの範囲はそれぞれ256個の連続したアドレス(合計1024個)です。deny from...CIDR範囲を参照していない場合、行のIP範囲の構文は非常に混乱しやすいことに注意してください。ただ、ということを理解0/24256サイズの範囲は0から始まる手段はそれほど180.76.5.0/24実際の間のすべてのIPアドレスを意味180.76.5.0して180.76.5.255。ええ、特に明白ではありません!しかし、理由を知りたい場合、または混乱を感じるだけの場合は、http://www.mediawiki.org/wiki/Help:Range_blocksにアクセスしてください。

概要

インターネットは無料で、オープンで、公正でなければなりません。しかし、これは、Baiduのような組織がRobots.txtに従うことを学習し、クロールの規則性にあまり貪欲であることを意味します。私の解決策は、非常に強力な設定をいじくり回すことを伴うため、.htaccessファイルをいじる前に、元のサーバーを必ずバックアップしてください。ご自身の責任で進めてください。


それは時間にメンテナンス時間を必要とするので、そのIPアドレスブロックは、変更される可能性
asgs

5

次のディレクティブを使用してrobots.txt、サイトのクロールを禁止できます。

# robots.txt
User-agent: Baiduspider
Disallow: /

ただし、クローラー robots.txtのコンテンツを無視する場合があります。さらに、ファイルは検索エンジンでキャッシュでき、変更が反映されるまでに時間がかかります。

最も効果的なアプローチは、サーバー機能を使用することです。次のルールをnginx.confファイルに追加して、サーバーレベルでバイドゥをブロックします。

if ($http_user_agent ~* ^Baiduspider) {
  return 403;
}

変更を適用するために、Nginxを再起動またはリロードすることを忘れないでください。


3

Baiduからのトラフィック量は攻撃的なスキャンには無視できるほど大きかったため、Baiduをブロックすることにしました。さらに、ブラウザを偽装してJavaScriptコード(我々アナリティクスなど)を起動し、統計情報を台無しにするエージェントを実行するようになりました。

素敵なバージョンは、次のようにrobots.txtを更新しています

User-agent: Baiduspider
Disallow: /
User-agent: Baiduspider-video
Disallow: /
User-agent: Baiduspider-image
Disallow: /

しかし、他の人がここに書いたものと、彼らの存在を隠すユーザーエージェントを使用しているものを考慮して、私は彼らのIPアドレスを完全にブロックします。以下はnginxでどのように行われるかです

# Baidu crawlers
deny 123.125.71.0/24;
deny 180.76.5.0/24;
deny 180.76.15.0/24;
deny 220.181.108.0/24;

2

Wordpressソリューション(最適ではありませんが役立ちます)

Biaduスパイダーの問題と同じで、トップを使用してコンソールで私のボックスが35を超えるという攻撃的でした。明らかに、高速のコンピューターでさえ、35 ....

IPの数(その大学の建物からですか????)は数百で、主に2人のユーザーエージェントでした)

直接的な結果?クラウドサーバーを持っているので、応答を低下させるために同じものをより高いメモリにアップグレードする必要がありました。

前の答え:

#Baiduspider
User-agent: Baiduspider
Disallow: /

Baiduはrobot.txtの指示を完全に尊重できないようです。

私がしたこと:

Wordpress用のWP-Banプラグイン(無料)をインストールし、以下を禁止しました:

ユーザーエージェント:

  • Baiduspider+(+http://www.baidu.com/search/spider.htm)

  • Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)

さらに、Wp Super Cacheを使用して、相対エラーページを静的ページに再アドレスします。したがって、Wordpressのインストール全体では、MySQLデータテーブルをチェックすることはできません。

(これは標準のWordpress blablablaであるため、Wordpressプラグインをインストールできる人は誰でも行うことができます。この手順ではコーディングやFTPアクセスは不要です)

私はみんなに同意します:インターネットは無料で、誰でも絶対に最後にすべきことを禁止しますが、バイドゥは今日、ポルトガルで書かれたウェブサイドをスパイダーするだけで、毎月40米ドルの費用がかかります。多くの中国人と訪問者がこの言語を読んで理解することができます。


1

ngx_http_access_moduleof nginx を使用してIPアドレスでブロックできます。単一のIPをブロックするには、次のようにconfファイルに行を追加できます

deny 12.34.567.1;

範囲をブロックするには、12.34.567.1 IPアドレスを含む(256 IPアドレスの)24ビットサブネットブロックのように、CIDR表記を使用し12.34.567.1/24ます。詳細については、たとえば、このページを参照してください


1

.htaccessを使用する

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^.*MJ12bot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*Baidu [NC]
RewriteRule .*  - [L,F]

[RewriteEngine On]を使用すると、次の行が正しく解析されます。HTTP_USER_AGENTは、スパイダーが自分自身を識別する行です。行に「MJ12bot」または「Baidu」が含まれている場合、条件は真です。NCは「大文字と小文字を区別しない」ことを意味し、ORで条件を連鎖できます。最後の行に「OR」を含めることはできません。そうしないと、ルールが機能しません。

BaiduはWordpressのエントリ( "fckeditor"、 "wp-content")を読み取ろうとするため、特に理由がありません。MJ12botも悪い生き物の1つです。

書き換えルールは、403 Forbidden([F])でスパイダーをブロックして、すべてのファイル(。*は任意のファイルの正規表現)にアクセスし、htaccessのさらなる評価([L])を停止することを意味します。


1
Fフラグは意味Lを明示的に含める必要はありませんので、Lここにフラグを。また、のようなパターン^.*Baiduは単にと同じですBaidu
MrWhite
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.