試される大地から

furaiboが送る技術ブログ。プログラミングのTipsなど書いていきます。

Baiduクローラ(Baidu Spider)を拒否する方法。

Baiduクローラ(Baidu Spider)の脅威


WordPressでサイト構築してみたけれども、それでひとつ気づいたことがある。それは、Baidu(百度)のクローラが限りなくウザいということである。


Baiduは中国の大手検索エンジンであるが、実は以前に、Baidu Spiderのアクセス頻度が多すぎてサーバに負荷をかけるので問題になったことがあったらしい。最初Baiduクローラのアクセスを放置していたのだが、鬱陶しくなり中国からのIPを弾いた所、まだアクセスがあった。アクセス元情報の偽装までして押しかける始末である。


robots.txt(詳細はググってね)での拒否設定も無視してくるのでこれに業を煮やしてBaiduのアクセスを禁止することにした。そのために日本国内からのアクセスのみ許可し、なおかつBaiduの持っているクローラのIPは全て拒否。日本以外のIPからのアクセスを.htaccessファイルで弾き、日本のIPでもBaiduのものはiptableで拒否する二段構えである。


具体的な解決方法


あまり意味はなさそうだが、Baiduクローラを拒否するrobots.txtの書式は以下。
これでとりあえずtobots.txtでBaiduクローラを拒否できたことになる(普通に偽装アクセスされるが)

#Baiduspider
User-agent: Baiduspider
Disallow: /
User-agent: Baiduspider+
Disallow: /
User-agent: BaiduMobaider
Disallow: /
User-agent: BaiduImagespider
Disallow: /

そして、このサイトにアクセスする。

http://filtering.web.fc2.com/

ここから日本のIPのみを許可する.htaccessファイルを取得し、ドキュメントルートに設置する。

さらに、ホームページを動作させているサーバにsshなどでアクセスし、シェルから


# iptables -I INPUT -s 119.63.192.0/21 -j DROP
# /etc/rc.d/init.d/iptables save



と入力することで、iptableのルールを追加。日本のBaiduクローラを拒否できる。これで、Baiduのクローラが原因の不可解な中国・日本からのアクセスが止むはずである。





(追記 2013/11/26)

この方法だと、Googleクローラもアクセスできなくなってしまうため、中国のアクセスを弾き、Baiduクローラの日本でのIPアドレス.htaccessで弾く方式の方がよさそうである。ただし、Baiduのアクセスは当然完全には防ぐことは出来ない。