.htaccessでアクセス制限の小ネタ

アクセスしてきたIPアドレスを見て、アクセス制限する(=ディレクトリ内のファイルを見せない)方法を2つ。
(httpd.confに記述してもいいんだけど、レンタルサーバーでapacheの設定ファイルをいじれるような専用・占有プランじゃなくて一般的な間借りの場合、各自割り当てられたディレクトリに.htaccessというファイルで設定することになる)
.htaccessに以下を記述する。
ひとつは。
1行目 以下は許可してから拒否するよ、という指定
2行目 すべてのアクセスを許可する
3行目 NNN.NNN.NNN. で始まるIPアドレスは拒否する。123.456. など前方一致(大きく範囲でざっくり拒否したい時は123.などにする)
これはアクセスしてきた相手に403を返す。
アクセスしてきた側は「このフォルダ、ファイルにアクセスする権限がありません」とか「このフォルダ、ファイルにアクセスは許可されていません」などとなってページを見ることができない。
この方法が手っ取り早いんだけど。
「このフォルダ、ファイルにアクセスする権限がありません」ということだと、「このフォルダやファイルが存在している」ということを相手に教えてしまうことになる。
mod_rewriteというモジュールが使えるなら(最近のレンタルサーバーのapacheはほとんど使えると思う)
RewriteRuleで404を返すことができる。
1行目 RewriteEngine を有効にする
2行目 アクセスしてきたIPアドレスが NNN.NNN.NNN.で始まるなら
3行目 404で「404.html(見つかりませんでしたページ)」へリダイレクトする。
アクセスしてきた相手は「そんなフォルダ、ファイルはありません」ということになってページを見ることができない。403よりも404を返した方が安全。
wordpressにセキュリティホールがー、とか、bashのぜーじゃくせーがー、とか何かあるたびに、そこを狙った妙なアクセスが増えるので対策をしておいた方が吉。
ウチのページはほとんどperlで自作してるので、スクリプトの方でも404を返すようにしてるんだけど、設定ファイルにも仕込むようにした。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
【電子書籍発売中】