第3章 ファイルのアクセス制限

第1節 この章の概要

この章では、以下の4点について詳しく説明します。
  1. ホームページのアクセス制限とは
  2. アクセス制限の方法
  3. .htaccessの書き方




第2節 アクセス制限

□□□ ホームページのアクセス制限とは

アクセス制限とはその名の通り特定ページへのアクセス(見る許可)を限定するもので特定のドメインだけに限定したり,また逆に特定のドメインからのアクセスを禁止したり,IDとパスワードを持っている人だけしかページを見られないようすることです.

□□□ アクセス制限の方法

インターネット上にホームページを公開するためにmikilabマシンはapacheと言うソフトウェアを使用しており,「.htaccess」というファイルをアクセス制限したいディレクトリに置くことによりアクセス制限を行うことができます.


ここで紹介するアクセス制限には制限方法と制限対象がそれぞれ2種類あります.制限方法は以下の2種類があります.

制限対象は以下の2種類がありますが,基本的にはIとなります. どの種類の組み合わせになるのかは「.htaccess」の記述に依ります.ここではアクセス制限をするためにどのようなことをすればいいのかのみを解説します.





第3節 .htaccess

□□□ IDとパスワードで制限する

IDとパスワードで制限するには.htaccessを次のように記述します.


Basic認証とは
いわゆるIDとパスワードによる認証と思っていただいて結構です.

require valid-user
valid-userを特定のユーザーのIDとすることでそのユーザーにのみにアクセスを許可することができます.たとえばユーザーとしてcat,dog,birdがいるときにcatとbirdにアクセスを許可するには「valid-user cat,bird」とします.

パスワードリストファイルとは
アクセスを許可されたユーザーのIDとパスワード(を暗号化したもの)が書かれたファイルです.内容は次のようになっておりコロンの左がID,右が暗号化されたパスワードです.

dia99:o2SROcGrX9wtw
暗号化されたパスワード

このファイルはmikilabマシンの中の「/usr/sbin/htpasswd」というプログラムを使って作成します.使用法は「/usr/sbin/htpasswd [-c] 」です.パスワードリストファイルを初めて作るときは「-c」オプションをつけて新規作成します.ファイル名とIDを指定して実行すると使用したいパスワードを聞いてくるので2回入力します.するとカレントディレクトリにfilenameで指定した名前のパスワードファイルができます.次からユーザーを追加するときは「-c」オプションは必要ありません.もし付けてしまうと元のファイルに上書きしてしまいますので気をつけてください.

「ls -a」で表示されたファイルの中に.htpasswd-fileができていればOKです.


□□□ ドメインによるアクセス制限

「*.doshisha.ac.jp」からアクセスしているユーザーのみが見られるようにするには.htaccessを次のように書きます.


逆に「*.doshisha.ac.jp」からアクセスしているユーザーだけには見られないようにするには.htaccessを次のように書きます.


「deny from ...」や「allow from ...」は複数書くことができます.またIPアドレスを直接指定することもできます.ex.deny from 222.111


□□□ ファイルへのアクセス制限

.htaccessに次のような記述を加えます.


上の例ではsecret.htmlへのWWW経由でのアクセスを一切禁止します.また上のものを使いとすることで.htaccess自体を見えなくすることができます.


□□□ 複合制限

以上に出てきたものを同時に使い,ドメインとID&PASSの両方で制限することも可能です.


これで「*.doshisha.ac.jp」から接続していてかつ,ID&PASSを知っているユーザーしか「mikilaber.html」を見ることはできません.





第4節 .htaccess(2)

□□□ 実際にアクセス制限を行うには

まずWindows上のテキストエディタ等で.htaccessファイルの内容を作成します.場合によってはピリオドから始まるファイルが作れない場合もあるのでhtaccess.txtなどの名前にしておいてもよいでしょう.次にパスワードによるアクセス制限をかけたい場合はパスワードリストファイルを用意し,.htaccessを正しく設定します.そしてアクセス制限をかけたいディレクトリ(もしくは制限をかけたいファイルがあるディレクトリ)に.htaccessを(ID&PASSを使うならパスワードリストファイルも)ftpソフトなどを使ってアップロードします.