Eyes, JAPAN Blog > 無法者クローラを拒否する

無法者クローラを拒否する

beko

この記事は1年以上前に書かれたもので、内容が古い可能性がありますのでご注意ください。

以前紹介したアクセス解析機能 (参照) で、日々の訪問者を観測していると、アクセス数が不自然に跳ね上がる日があることに気が付きました。
ログを詳細に見てみると、同一のIPアドレスからリクエストが立て続けにきていることが分かります。
その頻度は1分間の間に15~30回。
しかも、複数のアドレスから同様のことが行われているため、この不審なアクセスは多いときで1日600回にも達します。

これは、クローラとよばれる、データ収集のためのプログラムによるものと考えられます。
真っ当なクローラ (有名どころでは、Googlebot, Yahoo! Slurp など) は、ユーザエージェント情報で、自らの素性を名乗るので識別上の問題はありません。
しかし、これらのクローラはユーザエージェント情報を “Internet Explorer” と偽装してくるため、プログラムによって自動的に識別を行うのが困難です。

まとめると、こうした「無法者クローラ」の問題は以下の二点となります。

  • アクセス解析 (人間のユーザによる閲覧数の集計) の精度が低下する。
  • アクセスが集中することで、サーバの負荷が増大する。

特に 2. はページ内容を動的に生成しているこの「鵞鳥の羽根ペン」のようなシステムにとっては、実質的なDDoS攻撃であり、大きな脅威となりえます。
そこで、これらの「無法者クローラ」への対策として、システムにアクセス制御機能を付けることにしました。

アクセス制御機能

管理システムの「アクセス制御」ページでは、管理対象とするIPアドレスを登録することができます。(画像参照)
アドレスだけでなくマスク値を指定することができるので、特定の範囲のIPアドレスをまとめて設定することも可能です。
例えば “163.143” から始まるアドレスからのアクセスを拒否したい場合は、次のような設定を行います。

IPアドレス 163.143.0.0
マスク 255.255.0.0

なお、上であげた “163.143” から始まるアドレスは会津大学のものですが、あくまでも例であり、「会津大学が無法者クローラを稼動させている」という意味ではないことにご留意ください。
該当するアドレスからアクセスが来た場合、ブログシステムはステータスコード 403 (Forbidden) とともに、”Access refused.” というプレーンテキストを返します。(下図参照)

Access Refused

現在は、IPアドレス指定によるアクセス拒否機能しかありませんが、リファラによる指定や、アクセス拒否以外の設定 (ログ項目にマークを付ける等) も行えるように拡張していく予定です。

成田 (他人の礼儀作法には厳しい)

Comments are closed.