IPアドレスやホスト名を使って、アクセスを制限(拒否)する方法

403 Forbiddenエラー

403 Forbiddenエラー

特定のページへのアクセスを拒否するには、「.htaccess」という特殊なファイルを使います。これを使うと、指定した条件に合致しないアクセス者には、右図のように「403 Forbidden」というエラーが表示され、本来のウェブページは表示されなくなります。

この「.htaccess」ファイルに関して詳しくは、記事「.htaccessファイルの作り方と設置方法」で解説しています。基本的な書き方や設置方法が分からない場合は、本記事の解説と併せてご参照下さい。


 
■特定のファイルだけを対象にしてアクセス制限を施す記述方法

例えば、Movable Typeのログインページを作る「mt.cgi」ファイルへのアクセスだけを制限するには、以下のような感じで「.htaccess」ファイル内に記述します。
<Files "mt.cgi">
   ~ アクセス制限に関する記述 ~
</Files>
上記の1行目にあるように、アクセス制限の対象にしたいファイル名を、引用符の内側に記述するだけです。

■アクセスを許可する対象を指定する記述方法
この「mt.cgi」ファイルに対して、「すべてのアクセスを拒否」するが、「例外として一部のユーザにだけはアクセスを許可」するには、例えば以下のように記述します。
<Files "mt.cgi">
   order deny,allow
   deny from all
   allow from 210.168.89.44
   allow from .infoweb.ne.jp
   allow from .mesh.ad.jp
</Files>
2行目の「order deny,allow」は、「拒否を先に、許可を後に」解釈する指定です。
3行目の「deny from all」は、すべてのアクセス者を拒否する指定です。
この2~3行目は、この通りに記述して下さい。特に修正する必要はありません。

続く4~6行目がアクセスを許可する対象を指定している箇所です。アクセスを許可したい対象を「allow from ***」のような形式で、いくつでも必要なだけ列挙します。上記の例では、
  1. IPアドレス「210.168.89.44」からのアクセス (4行目で指定)
  2. ホスト名「~~.infoweb.ne.jp」からのアクセス (5行目で指定)
  3. ホスト名「~~.mesh.ad.jp」からのアクセス (6行目で指定)
……という3条件の「どれかに合致するユーザ」だけに、アクセスが許可されます。

例えば、自宅で利用しているIPアドレスが「210.168.89.44」で、出先では「@nifty」か「BIGLOBE」の回線を利用している……という場合には、上記のように3つの許可条件を記述しておくと良いでしょう。

※アクセスを許可するホスト名として、例えば「.example.net」と記述している場合は、「user123.osaka.example.net」や「e55921.ppp.example.net」などのように、ホスト名の中に「.example.net」という文字列を含むすべてのホスト名からのアクセスが許可されます。

エラーメッセージを書き換えたいなら

もし、アクセス拒否時のエラーメッセージ「403 Forbidden」を自由に書き換えたいなら、例えば以下のように追記します。
ErrorDocument 403 /info/error403.html

<Files "mt.cgi">
   order deny,allow
   deny from all
   allow from .mesh.ad.jp
</Files>
上記の場合は、アクセスが拒否された際には、infoディレクトリ内にある「error403.html」の中身がエラーページとして表示されます。このように、各種エラーメッセージを自由に書き換える方法については、記事「Not Foundなど エラーメッセージを独自作成」でも解説しています。併せてご参照下さい。

CMSツールのログインページへアクセスできる人の数を減らす

今回は、ログインページなど、特定のページに対してのみアクセス制限を施す方法をご紹介致しました。この方法だけでCMSツールへの不正ログインが防げるわけではありませんが、不正ログイン対策の1つ(不正なログインを試される可能性を減らす方法)として、ぜひご活用下さい。

【関連記事】


※記事内容は執筆時点のものです。最新の内容をご確認ください。
※OSやアプリ、ソフトのバージョンによっては画面表示、操作方法が異なる可能性があります。