.htaccess活用法(4)
.htaccess(拡張子がhtaccessということで、ドットが必要です。ファイル名がないので最初戸惑いますが、こういうものだと思ってください。)が利用可能だと、
4.特定のユーザーエージェントからのアクセスを制限する
あなたのサイトが画像中心のサイトなら、ダウンロード支援ソフトによる、短い時間内での集中アクセス、容赦なく根こそぎ全部持っていく挙動に怒りを覚えているかもしれません。また、検索エンジンに掲載されるのは基本的に嬉しくても、プログラムがバグっているのか、頻繁に(1日に複数回とか)サイト全体を巡回するロボットプログラムに怒りを覚えているかもしれません。
ファイルを起点に情報共有! 伝達ミスを減らせるオンラインストレージ 【DirectCloud-BOX】
.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でいかに守るかです。
|