利用者を限定した情報公開の方法について説明します。
三重大学からしか見られたくないものは,そのディレクトリに .htaccess
というファイルを作り,その中に次のように書いておきます。
deny from all allow from 133.67
これは,三重大学のIPアドレスが 133.67.* であることを使っています。
.htaccess
というファイルはメモ帳や秀丸などのテキストエディタで作成すればいいのですが,Windows
ではうまく作成できないかもしれません。
そのときは htaccess.txt
のような名前で保存してサーバに送った後で,サーバ上で名前を変えます。
三重大学の学内には 10.* というプライベートアドレスのパソコンも多数ありますが,サーバの手前で 133.67.* にアドレス変換(NAT)されるようになっています。 これに対して,三重中京大学では 192.244.75.* というグローバルアドレスと 10.* というプライベートアドレスが混在します。 さらに,61.115.240.68 というアドレスに変換される場合もあります。 そこで,次のようにすれば学内専用のページができます。
deny from all allow from 192.244.75 allow from 10 allow from 61.115.240.68
別の例として,特定のホスト以外から掲示板等への書き込みを禁止するには次のようにします。
<LimitExcept GET> deny from all allow from 10.11.12.13 </LimitExcept>
一般に見られたくないものの入っているディレクトリに .htaccess
というファイルを作り,その中にたとえば次のように書いておきます。
これは,e299999
という人が,/home/mieu/e299999/public_html/limited
というディレクトリの内容にパスワードを設定する場合の例です。
3行目は後述のパスワードファイルの名前です(必ずフルパスで指定します)。
AuthType Basic AuthName "Himitsu" AuthUserFile /home/mieu/e299999/public_html/limited/.htpasswd require valid-user
こうしてから,htpasswd
のページでユーザ名(半角英数字8文字程度まで)とパスワード(半角英数字)を打ち込むと,.htpasswd
に書き込むべき内容が表示されますので,それをコピー&ペーストして使ってください。
複数の人を登録したい場合は,複数行並べます。
これで,そのディレクトリ以下にあるものを見ようとすると,最初にユーザ名とパスワードを聞いてきます。
一度パスワードを入れてしまえば,そのディレクトリ以下のどのファイルもパスワードなしで見えるようになります。 いったんブラウザを終了して立ち上げ直すまでパスワードを聞いてきません。 たとえブラウザを再起動しても,そのパソコンのキャッシュに残っている情報はパスワードなしで見えてしまう可能性があります(ただし「再読み込み」ボタンを押せばパスワードを聞いてきます)。 したがって,次に同じパソコンを使う人が見て困る情報なら,「キャッシュを空にする」という操作をしておきましょう。
掲示板等で,書き込むときだけパスワードを要求するには,次のようにします。
AuthType Basic AuthName "Himitsu" AuthUserFile /home/mieu/e299999/public_html/limited/.htpasswd <LimitExcept GET> require valid-user </LimitExcept>
詳しい人へ
サーバにログインできる環境があり,UNIXやLinuxに詳しい人なら,次のようにして
.htpasswd
を作ることができます。 コマンドの名前は,自分でコンパイルした Apache 2 なら /usr/local/apache2/bin/htpasswd,CentOS なら /usr/bin/htpasswd,Vine Linux 4 の Apache 2 なら /usr/bin/htpasswd2 です。htpasswd2 -c .htpasswd usernameこうすると,
username
というユーザに対するパスワードを2回聞いてきますので,同じパスワードを2回打ち込みます。さらにユーザを追加するには,続けて次のように打ち込みます。
htpasswd2 .htpasswd anotheruser今度は
-c
がないことにご注意ください。 やはりパスワードを2回聞いてきます。 これを必要なだけ続けます。以上の方法ではパスワードが crypt という関数でハッシュされます。 Apache 1.3.9 以降(Apache 2 も)では,より安全な MD5 を使うオプション
-m
が使えます。-c -m
は-cm
のように縮められます。
上述のような通常の認証(Basic認証)ではパスワードが平文でネットワークを流れます。 最近のブラウザやApache 2.xは標準でDigest認証という新しい方式に対応していますので,それを使ってみましょう。 以下はUNIXやLinuxに詳しいと仮定します。
まず .htaccess
はたとえば次のように書きます。
AuthType Digest AuthName "hogehoge" AuthDigestFile /home/hoge/.htpasswd Require valid-user
Apache 2.2 では AuthDigestFile
ではなく AuthUserFile
と書きます。
次に,htdigest
コマンドを使ってパスワードファイルを作ります(初回だけ -c
オプションを付けます)。
コマンドの名前は,自分でコンパイルした Apache 2 なら /usr/local/apache2/bin/htdigest,CentOS
なら /usr/bin/htdigest,Vine Linux 4 の Apache 2 なら /usr/bin/htdigest2 です。
htdigest2 -c .htpasswd hogehoge okumura
パスワードを聞いてきますので,2回打ち込みます。
上記のようなアクセス制御をしても,Webサーバにログインできるユーザは,直接あなたのファイルを読むことができるかもしれません。 ログインできなくても,CGIやPHPなどをうまく使ってパスワードを回避することができるかもしれません。 本当に秘密のファイルは共同利用のサーバには置かず,自前のWebサーバを立てるべきです。
Last modified: 2007-07-22 20:48:25