ボットを見分けるには(見分けづらいボット)
ユーザーエージェントやIPアドレスが公開されているボットは、無数にあるボットの中でも、かなり良心的というか、素性の良いボットだと言えます。なぜなら、アクセス解析ツールなどを利用することで、サイト管理者がそのボットを判別できるようにしているからです。しかし世の中には、ボットであることを隠してブラウザと見間違うようなアクセスを行うボットもたくさん存在します。
そうしたボットの中には、それを動かしている人が何らかの後ろめたい気持ちを抱いてい るケースも多く存在します。
例えば「スパムメールを送信する目的でメールアドレスを収集しているロボット」なんていうのは代表的なもので、それ以外にも、データ取得など何らかの目的で大量にそのサイトのページにアクセスをするけど、それをサイト管理者に知られたくない場合などには、ユーザーエージェントをブラウザが送るものと全く同じにして、ぱっと見ただけではわかりづらくしている場合があります。
そうしたアクセスはどうしたらわかるのか、というと基本的にはアクセスのパターンや傾向を見ることになります。慣れてくれば、アクセスの生ログや集計結果を見ただけで「コレはなんか怪しい」という勘が働くようになりますが、それではあまりきちんとした解説にはならないので、いくつかそういったものを見分ける方法をここで紹介しておきます。
まず代表的な方法の1つとして、アクセス元のIPアドレスを集計してみる方法があります。
ボットのアクセスはサイトに1回アクセスしたら終わり、ということにはあまりならず、短期間に集中的なアクセスをしてくることが多くなります。しかも、その場合同じIPアドレスから、同じユーザーエージェントで大量にアクセスが行われるので、例えば毎日1秒に1回ずっと同じペースで同じIPからアクセスがある、なんて場合は人間には無理な動作なので、間違いなくボットからのアクセスだと言えるでしょう。
ほかにも、同じIPアドレスからのアクセスの間隔が常にほぼ同じ秒数間隔(1分とか1時間)とかであったり、毎日同じ時間になると同じIPアドレスから集中的なアクセスがあるなどの、およそ人間らしくないきっちりしすぎるアクセスも怪しいと言えます。
それ以外にも、何度もアクセスしてきているのに、セッションクッキーを絶対に送ってこない、リファラーがまったくない、HTMLだけにアクセスしてJavaScriptやCSS、画像にまったくアクセスしていない、といったアクセスも怪しいと言えます。
ただしブラウザも設定次第でクッキーやリファラー、画像、JavaScriptなどを切ることができてしまいますし、ボットによってはCSSや画像ファイルにもアクセスしますから、それだけでボットと決めつけるのは早計ですが、そのほかの行動パターンと組み合わせるときの証拠の1つにはなります。
また、アクセスしてくるURLのパターンからボットを見分けることも可能です。例えば、存在しないページへのアクセスの回数が多すぎる、と言ったケースは、ボットならではのアクセスだと言えるでしょう。それからおそらくプログラムの何らかのバグで、URLの最後に必ず変なゴミが付いているアクセスがあった、なんてケースも筆者は見たことがあります。