|
検索エンジンとロボット
検索エンジンについてはいまさら説明するまでもないでしょう。膨大な量の情報があるインターネットの海を航海するにはなくてはならないものです。簡単なキーワードから検索でき、そのリンクから自分にとって重要な情報にたどりつくことができます。きっとこれをお読みのあなたもどこかの検索エンジンからジャンプされてきた人に違いないでしょう。
この検索エンジンには、検索エンジンが使っているデータベースの持ち方によって、大きく3種類があります。
- URLだけを登録すると検索エンジン側から「ロボット」と呼ばれる巡航ソフトがやってきて、登録したURL以下でリンクされているドキュメントを勝手に拾い集めていくもの
- データベースに登録したい人がアクセスして登録したいキーワードなどを含めて登録するもの
- URL(ほか紹介文など)を登録すると検索エンジン側の人がアクセスしてきて、そのホームページを閲覧し、要約して登録してくれるもの
自力でインターネットサーバを構築し、ホームページなども作成して、公開する準備ができたのなら、そんな検索エンジンに登録してもいいでしょう。ルータのNATではセキュリティ上不安がありますが、必要最低限のレベルでセキュリティもはかられています。アクセスログなどを調べて、セキュリティに穴(セキュリティホール)がないことが確認できたら、登録してみましょう。
さて、登録するにあたっては、3種類のうちどれに登録するかですが、「1」が一番簡単で、「2」「3」のタイプの検索エンジンは、自分のところのホームページの紹介文を考えたり、キーワードを決めたりしなければなりません。余裕があれば、「2」「3」まで登録したいものですが、少なくても「1」だけは登録してみましょう。
「URLを登録するだけ」といっても、ロボット巡航タイプの検索エンジンもけっこう数多くあります。代表的なものに次のものがあります。
もし、ホームページが英語でも書かれていれば、海外(英語)の検索エンジンに登録することもできます。
これだけあるとURLを登録するだけといってもめんどうです。インターネットではよくしたもので、不便を感じるようなことがあるとかならずどなたかがそれを解決する方法を提案してくれます。検索エンジンへの登録にも、無料で一括して登録してくれるサービスがあります。たとえば、Ist classさんのサイトに一括無料登録のページがあります。

アクセスして「ロボット型限定完全一括登録」をクリックします。このコーナーは無料になっています。
「E-mail」の欄に自分のメールアドレスを入力し、日本版URLに「http://www.hyperdyne.co.jp/」のように「http://」から始めた正式なURLを入力します。最後は「/」を入力しておいたほうがいいでしょう。英語版のページがあるなら、「英語版URL」にもURLを入力します。

入力したら、「完全な一括登録機能」欄の「全てに一括登録」「日本語版のみ一括登録」「英語版のみ一括登録」からどれかひとつをクリックします。日本語・英語ともあるなら「全てに一括登録」を、日本語だけなら「日本語版のみ一括登録」を、英語だけなら「英語版のみ一括登録」をクリックします。
あとは自動的に各検索エンジンに登録が行なわれます。このページからの登録の場合には、検索エンジン側の結果が別ウィンドウで開かれて表示されます。
gooに登録完了

Lycosに登録完了

infoseekに登録完了

エキサイトに登録完了

mondouに登録完了

AltaVistaに登録完了

フレッシュアイに登録完了

ロボット型検索エンジンの場合には、派遣されたロボットがそのうち、登録したURLをたずねてきます。ロボットがたずねてきたことは、Webサーバのログからわかります。「robots.txt」にアクセスしているものがあれば、それがロボットだと考えてほぼ間違いないでしょう。なぜなら、ホームページのどこからもリンクしていないrobots.txtにアクセスするのは、ロボットくらいしかいないからです。
たとえば、次のようにログに記録されます。
robot.fresheye.com - - [02/May/1999:05:18:26 +0900] "GET /robots.txt
HTTP/1.0" 200 415
|
これは、「robot.fresheye.com」という名前のロボット(たぶんFreshEyeから派遣されたものでしょう)が、1999年5月2日の5時18分26秒に、「/robots.txt」をHTTP/1.0プロトコルを使ってGETしようとし、その結果は成功(200)で、「/robots.txt」のバイト数は415バイトであるということを示しています。
Webサーバによっては、Webブラウザがなにかなどを記録することができるものがあります。ロボットの場合、このログにエージェントの名前が記録されます。このことからもロボットがやってきたことがわかります。
たとえば、Apacheでは「agent_log」に「InfoSeek Sidewinder/0.9」「ArchitextSpider」「Scooter/2.0 G.R.A.B. V1.1.0」「suke/0.3」など、ロボットがよく記録されています。また、登録してあるWebサーバを自動的に巡航するソフトもあって、ロボットと同じように「WWWC/0.93 (Win32; http://www.kinet.or.jp/naka/tomo/)」などと記録されています。
なぜロボット対策をしなければならないか
検索エンジンから派遣されたロボットは、登録されたURLを起点にドキュメントのリンクをたどっていきますが、その際、Webからアクセスできる場所(ディレクトリ)にアクセスしてほしくないファイルがある場合、そのファイルも公開されてしまうことになります。そのため、公開したくないディレクトリ・ファイルは公開しないようロボットに教える必要があります。それが、「robots.txt」です。
ロボットはWebサーバ上のルートディレクトリに「robots.txt」(かならずテキストファイルにする)があれば、そこに書かれた内容にしたがって拾い上げるドキュメントとそうでないドキュメントを判断することになっています。
robots.txtは、次のように記述します。
# /robots.txt file for http://home.hyperdyne.co.jp/
# mail webmaster@hyperdyne.co.jp for constructive criticism
User-agent: *
Disallow: /secret/
|
最初の
# /robots.txt file for http://home.hyperdyne.co.jp/
# mail webmaster@hyperdyne.co.jp for constructive criticism
|
はコメント行です。先頭に「#」が付いているとコメント行とみなされます。
User-agent: *
Disallow: /secret/
|
「User-agent: *」行はロボット自体を指定するものです。ある特定のロボットに対して設定することができるのですが、一般的には「*」としてすべてのロボットに該当させておけば良いでしょう。
「Disallow: /secret/」が実際にアクセスを禁止する設定です。「Disallow:」に続けてアクセスしてほしくないディレクトリやファイルを書き入れていきます。「/secret」とすると「secret」ディレクトリと同時に「secret」という名前のファイルも該当します。
アクセスを禁止したいディレクトリなどが複数ある場合は、
User-agent: *
Disallow: /secret/
Disallow: /secret2/
Disallow: /secret3/
Disallow: /secret4/
|
というように行を変えて記述していきます。
ロボット対策は万全ではない
こうしてrobots.txtを書き、Webサーバのルートディレクトリに置いておけば、それなりにアクセスを禁止することができますが、robots.txtは万全ではありません。むしろ危険な方法だとも言えるでしょう。たとえば、あなたのサイトのURLに続けて「robots.txt」と入力すると、そのrobots.txtがWebブラウザに表示されてしまいます。つまり、公開したくないディレクトリが集中して書かれたファイルをいとも簡単に見ることができるわけです。
そのため、「robots.txtを書いたから安心」というより、「かえって危険」という面もあるわけです。また、「robots.txtを参照してロボットが行動する」というのは、たんに取り決めにすぎません。ロボットの中にはその取り決めにしたがわないものもたくさんあります。
ではどうしたらいいかというと、決定的なものはありません。できることとしては、
- OSレベルでディレクトリやファイルのアクセス権を制限する
- OSレベルでディレクトリやファイルにパスワードを設ける
- Apacheなどでは、Webサーバ側でアクセスを制限することができます。この機能を使ってアクセスを制限する
- Apacheなどでは、Webサーバ側でパスワードを設けることができます。この機能を使ってパスワード制限をかける
などがあります。しかし、いずれも万全というわけではありません。OSやWebサーバ自体にバグなどがあったり、IPアドレスを詐称したアクセス方法があったり、裏ワザ的なアクセス方法がある可能性があるからです。
唯一、たしかな方法は、「Webサーバからアクセスできるディレクトリ以下には、公開するつもりのファイルしか置かない」。もっと言えば、「インターネット側からアクセスできるマシンに重要なファイルは置かない」という厳格なルールにしたがうのが、結果的には一番です。
|