.htaccess でアクセス元を制限する(allow,deny)

この記事は約4分で読めます。
スポンサーリンク

.htaccess でアクセス元を制限することが可能。

アクセス元が許可しない範囲ならば、

Forbidden

You don’t have permission to access / on this server.

と表示され、アクセスを拒否する。

HTTPステータスコードは403、四百番台はクライアントエラーであり、404(Not Found)が有名。

—–

Forbidden

(形容詞)禁じられた,禁制の,禁断の

forbidの過去分詞形。

forbidden ground:立入禁止区域

—–

指定例

order allow,deny
allow from all

deny from 110.80.
deny from 110.81.

アクセス制限の順番は「order allow,deny」では、許可(allow)を先に設定し、拒否(deny)を後に設定する。

設定は後(ファイルでは下方)に設定したもので上書きされるため、許可したものでも、後で拒否すると拒否される。

つまり、ブラックリスト的な考え方。

よって、先にallow from allで全てを許可し、後でdeny from…で一部を拒否できる。

逆に「order deny,allow」では、deny from allで全てを拒否し、後でallow from …で一部を許可できる。

つまり、ホワイトリスト的な考え方。

許可範囲が非常に狭い(大学内のみ許可等)場合は後者を使うが、一般のサイトでは前者を使うことになる。

アクセス元の指定方法は、

all
全てのアクセスであり、allow from allは全てを許可し、deny from allは全てを拒否する。

IPアドレス
110.89.48.98のように4セグ全てを指定してもよいが、110.89.のように一部だけでもよい(前方一致)。
一部のみを指定する場合は、最後は「.」で止める。
ネットマスクやネットマスクのビット数を指定することも可能。

ホスト名
ホスト名で指定する。
allow from xxx.co.jp
後方一致も可能。
但し、アクセス時点ではIPアドレスしか分からないため、これからホスト名を調べ(逆引き)、指定されたホスト名と後方が一致するかで判断。

つまり、逆引きできない場合は、一致不一致が判断できない。

悪質アクセスの拒否を

deny from 163data.com.cn

で防ぐことができないのは、この「逆引き」ができないことがあるためである。

Windowsでは、cmd→nslookupで正引き、逆引きが可能。

nslookup 110.89.48.98 (逆引き,成功した場合)

名前:98.48.89.110.broad.pt.fj.dynamic.163data.com.cn
Address:110.89.48.98

ホストとIPを比較すると分かるが、IPを逆の並びにしたものがホストの頭に付いている。

nslookup 98.48.89.110.broad.pt.fj.dynamic.163data.com.cn (正引き)

*** UnKnown が 98.48.89.110.broad.pt.fj.dynamic.163data.com.cn を見つけられません: Non-existent domain

もう、SN全て拒否でイイのではないかねwwwwwwwwww

—–

正引き
 ホスト名→IPアドレス

逆引き
 IPアドレス→ホスト名

できるPRO Apache Webサーバー 改訂版 Version 2.4/2.2/2.0対応 (できるPROシリーズ)
辻 秀典 渡辺 高志 鈴木 幸敏 できるシリーズ編集部
インプレスジャパン
売り上げランキング: 28,648
サーバ構築の実際がわかる Apache[実践]運用/管理 (Software Design plus)
鶴長 鎮一
技術評論社
売り上げランキング: 74,922
タイトルとURLをコピーしました