.htaccess活用法(4)

.htaccess(拡張子がhtaccessということで、ドットが必要です。ファイル名がないので最初戸惑いますが、こういうものだと思ってください。)が利用可能だと、

4.特定のユーザーエージェントからのアクセスを制限する

あなたのサイトが画像中心のサイトなら、ダウンロード支援ソフトによる、短い時間内での集中アクセス、容赦なく根こそぎ全部持っていく挙動に怒りを覚えているかもしれません。また、検索エンジンに掲載されるのは基本的に嬉しくても、プログラムがバグっているのか、頻繁に(1日に複数回とか)サイト全体を巡回するロボットプログラムに怒りを覚えているかもしれません。



東芝ダイレクトPCなら全国送料無料です!!


.htaccessをアップしたら、どのページにアクセスしてもInternal Server Error(内部サーバエラー)に!!
.htaccessは非常に多機能です。一方で、その.htaccessが置かれているディレクトリーより下位の階層のファイル全てに対して制御がかかるため、.htaccess自体がバグっていた場合、CGI時にお馴染みの「恐怖の大王」ことInternal Server Error(内部サーバエラー)が出現します。

しかも、HTMLファイルなどCGIと全く関係のないページであっても、.htaccess内で、例えば「Redirect」を「Redriect」などとタイプミスするなどことにより、Internal Server Errorが発生することがあります。「Redirectディレクティブ」(ディレクティブとは「命令」の意味です。)は存在しますが、「Redriectディレクティブ」なるものは存在しないため、どう対処していいかサーバも分からず、Internal Server Errorが表示されることになります。注意したいものです。

このような場合、ホストアドレスでのアクセス制限とともに(ホストアドレスによるアクセス制限については、こちらを参照してください。)、ユーザーエージェントによるアクセス制限を行います。

    SetEnvIf User-Agent "Ninja" deny_ua
    order allow,deny
    allow from all
    deny from env=deny_ua
などとします。「SetEnvIf」については前章で説明しましたので、繰り返しの説明は避けますが、ユーザーエージェント名に「Ninja」という文字列が混じっていたならば拒否するという意味になります。

ただし、ユーザーエージェント名(UA)というのは、Refererと同じく、偽装することが可能です。「私は○○です」と相手が勝手に言っているだけですから、100%信じることはできません。Windows版IE6のように名乗りながら、その実、ダウンロード支援ソフトかもしれません。ただ、UAを見ることにより、ある程度制限できることは確かです。覚えておいて損は無いでしょう。



▼ Allowディレクティブ、Denyディレクティブ、Orderディレクティブ
http://httpd.apache.org/docs-2.0/ja/mod/mod_access.html

▼ SetEnvIfディレクティブ
http://httpd.apache.org/docs/mod/mod_setenvif.html#setenvif



次のページでは、データ流出事故の原因にもなっている深刻な問題を取り扱います。データファイルを.htaccessでいかに守るかです。



  【PR】 元気の水(マグスティック)はミネラル豊富です。健康を考える方に
  【PR】 24M時代に、ADSL徹底導入術。プロバイダのキャンペーン情報など。