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

2014/10/12 [10:01:12] (日) 天気

アクセスしてきたIPアドレスを見て、アクセス制限する(=ディレクトリ内のファイルを見せない)方法を2つ。

(httpd.confに記述してもいいんだけど、レンタルサーバーでapacheの設定ファイルをいじれるような専用・占有プランじゃなくて一般的な間借りの場合、各自割り当てられたディレクトリに.htaccessというファイルで設定することになる)


.htaccessに以下を記述する。


ひとつは。


order allow,deny
allow from all
deny from NNN.NNN.NNN.

1行目 以下は許可してから拒否するよ、という指定

2行目 すべてのアクセスを許可する

3行目 NNN.NNN.NNN. で始まるIPアドレスは拒否する。123.456. など前方一致(大きく範囲でざっくり拒否したい時は123.などにする)


これはアクセスしてきた相手に403を返す。

アクセスしてきた側は「このフォルダ、ファイルにアクセスする権限がありません」とか「このフォルダ、ファイルにアクセスは許可されていません」などとなってページを見ることができない。


この方法が手っ取り早いんだけど。

「このフォルダ、ファイルにアクセスする権限がありません」ということだと、「このフォルダやファイルが存在している」ということを相手に教えてしまうことになる。


mod_rewriteというモジュールが使えるなら(最近のレンタルサーバーのapacheはほとんど使えると思う)

RewriteRuleで404を返すことができる。


RewriteEngine On
RewriteCond %{REMOTE_ADDR} ^NNN\.NNN\.NNN\.
RerwriteRule .* /404.html [R=404,L]

1行目 RewriteEngine を有効にする

2行目 アクセスしてきたIPアドレスが NNN.NNN.NNN.で始まるなら

3行目 404で「404.html(見つかりませんでしたページ)」へリダイレクトする。


アクセスしてきた相手は「そんなフォルダ、ファイルはありません」ということになってページを見ることができない。403よりも404を返した方が安全。



wordpressにセキュリティホールがー、とか、bashのぜーじゃくせーがー、とか何かあるたびに、そこを狙った妙なアクセスが増えるので対策をしておいた方が吉。


ウチのページはほとんどperlで自作してるので、スクリプトの方でも404を返すようにしてるんだけど、設定ファイルにも仕込むようにした。

image

<<2026/1>>
    123
45678910
11121314151617
18192021222324
25262728293031
検索:

【最近の20件】