URLを書き換えろ!

Apache Rewrite 機能の応用

最近、FormMail CGI を狙った不正アクセスが横行している。本サイトでは FormMail なんぞ使っていないので、影響はまったくないのだが、それでもアクセスプロファイルを見ていると不愉快な気分になるのは当然のことである。

もし、あなたがクラッカーならば、一言いっておく。不正アクセスは犯罪であり、周知のCGIのバグをつついて悪戯を仕掛けるのは創造力もスキルも完全に欠いた行為に過ぎず、「カッコイイ」ことでも何でもありはしない。インターネットのスキルとは、やはり本格的なプログラミング能力に基盤をもち、決して雑学的な情報なのではない。有用で興味深いプログラムを書くことは、クラッキングとは比較にならない楽しみである。クラッキングなぞ止して、ちゃんとしたプログラミングを勉強しなさい。これこそが「ハッキング」の道である。

というわけで、馬鹿なクラッカーをからかうために、Apache の機能である、Rewrite を応用してちょっとした仕掛けを考案したので、それを公開しよう。なかなか汎用的に使えるテクニックであり、それほど知られている様子ではないので、公開するだけの価値があると考える。

また、筆者は毎日自作CGIにより、アクセス・プロファイルを監視しているが、その中で検索結果ではない本当のリンク元であると考えられる HTTP_REFERER があれば、それがどういう風に筆者のページにリンクしているのかを確認し、何かあればリンク元様に御連絡できるように記録している。この確認のアクセスをやはりリンク元様の方でもご確認となり、プロファイルCGIのURLにアクセスして頂くことがあるようである。しかし、プロファイルCGIはその性質上、公開すべきものではないので、当然アクセス元IPの確認&パスワードによる認証のセキュリティがなされている。その結果、そういうアクセスを Apache は黙ってハネてしまう。これはリンク元様に失礼かな? とも思い、その場合の対応をしようと思いついた。実はこれにも Rewrite 機能が応用できるのである。というわけで、Apache の Rewrite 機能の応用の手引を書こうと思い立った。

要するに Rewrite 機能とは、正規表現で指定されたURLのパターンを一括して Apache 内部で別なURLに変換する機能である。Alias 機能や Redirect 機能と似ているが、それよりも遥かに柔軟な機能である。そのような面白みがあるために、意外な応用が数多く存在する。しかし、Rewrite 機能は Apache 1.2 で採用された機能なので、それほど活用されているとは見受けられない。そのため、きっと多くのサイト管理者にとって有用なことだと思う。

ちなみに、筆者は新サーバ(www.nurs.or.jp)に引っ越して、初めて「間借り環境」になり、.htaccess の中にしか Rewrite が書けない状態になった。そのために、新たに経験値を積んだので、.htaccess に書く時の注意事項を追加した。こっちのほうがフツーのユーザのお役に立つだろう。

目次





copyright by K.Sugiura, 1996-2006