認証すら設けず、問答無用でアクセス拒否


アクセス拒否(403 Forbidden)エラーの表示
▲アクセス拒否されたところ

過去の記事で、IDとパスワードによって認証を施すアクセス制限方法をご紹介いたしました。 これによって、望まない人物の閲覧を防ぐことができます。 しかし、あらゆるアクセス者からのアクセスを防ぎたい場合は、認証などを設けずに、問答無用でアクセスを拒否する(=403 Forbiddenエラーを出す)のが楽です。

ウェブサーバの設定ファイルである「.htaccess」ファイルを使えば、以下のようなアクセス拒否ができます。

(1) 指定ディレクトリへのアクセスを完全に拒否
(2) あるファイルだけに限定してアクセスを拒否
(3) 自分自身からのアクセスは無制限に許可し、自分以外からのアクセスをすべて拒否
※ここでのアクセスとは、ブラウザからのアクセスのこと。

■用途

上記(1)や(2)は、「CGI内部で使われる設定ファイルやパスワード格納ファイル」などのように、(自分も含めて)誰もブラウザ上から閲覧する必要のないデータに対して施すとよいでしょう。 すべてのアクセス者を拒否しておけば、見られては困るファイルがダウンロードされてしまうことを防げます。
※自分自身もブラウザ上からはアクセスできなくなりますが、FTPなどではアクセス可能です。

上記(3)は、「自分専用の一時ファイル置き場」や「CGIが生成するログファイル」などのように、自分だけは閲覧でき、他人による閲覧はすべて拒否したい場合に活用できます。 認証を使うことでも同様のことができますが、いちいちIDとパスワードを入力するのは面倒です。 自分自身しかアクセスしないと分かっているのであれば、自分からのアクセスだけを許可し、他は拒否する設定を施しておくのが楽でしょう。

今回は、上記の3通りのアクセス拒否設定方法をご紹介いたします。

なお、今回ご紹介するアクセス拒否設定は、「.htaccess」ファイルを活用するものです。 ウェブサーバがApacheでない場合や、お使いのサーバが「.htaccess」ファイルの設置を認めていない場合には使えませんので予めご了承下さい。

また、「.htaccess」ファイルの作り方に関しては、記事「.htaccessファイルの作成方法と設置方法」をご参照下さい。

【この記事の目次】

(1) 指定ディレクトリへのブラウザからのアクセスを完全に拒否
(2) 特定ファイルだけに限定して、ブラウザからのアクセスを拒否
(3) 自分自身からのアクセスは無制限に許可し、自分以外からのアクセスをすべて拒否

※前の説明を踏まえて次の説明を行うようになっていますので、最初から順に読み進めることをお勧めいたします。