利用者を限定した情報公開の方法について説明します。
インターネットにつながったパソコンにはIPアドレスという番号が振られています。
三重大学からしか見られたくないものは,そのディレクトリに .htaccess
というファイルを作り,その中に次のように書いておきます。
deny from all allow from 133.67
Windowsでの作業の注意を書いておきます:
.htaccess
というファイルはメモ帳などのテキストエディタで作成すればいいのですが,メモ帳ではファイル名が思い通りにならないかもしれません。そのときはとりあえず適当な名前で保存してサーバに送った後で,サーバ上で名前を変えます。三重大学の学内には 10.* というプライベートアドレスのパソコンも多数ありますが,サーバの手前で 133.67.* にアドレス変換(NAT)されるようになっています。
自宅から見る場合には,自宅のIPアドレスを調べて,allow from ...
の行を追加します。
別の例として,特定のホスト以外から掲示板等への書き込みを禁止するには次のようにします。
<LimitExcept GET> deny from all allow from 良い人のIPアドレス </LimitExcept>
あるフォルダ以下のものを見るときにパスワードを聞いてくるようにしてみましょう。
そのための方法には,古いBasic認証と,より新しいDigest認証があります。Basic認証は(SSLなどを使わない限り)パスワードが平文でネットを流れますので,以下ではDigest認証について解説します。 Digest認証は,Apache 2では標準で対応していますが,古いApacheではmod_auth_digestというモジュールが必要です。 ブラウザはあまり古いものは対応していません。 IEなら5以降が必要です。 FirefoxやSafariはすべて大丈夫です。
まず,アクセス制御したいディレクトリに次のような .htaccess
というファイルを作ります。
AuthType Digest AuthName "himitsu no basho" AuthUserFile /home/hoge/.htpasswd Require valid-user
AuthName
は,場所の名前で,パスワードを打ち込む窓に表示されます。
"..."
で囲んで書きます。
AuthUserFile
は,ユーザ名とパスワードを書き込んだファイルのフルパスです。
外から見えないところに置くのが好ましいのですが,外から見えるところに置かなければならない場合は,.htpasswd
のように .ht
で始まる名前にします。
なお,Apache 2.2 になる前は AuthUserFile
ではなく AuthDigestFile
と書きました。
次に,htdigest のページでユーザ名(name),場所の名前(realm,上のAuthNameに相当),パスワード(pass)を入力し,出力される行を AuthUserFile
で指定したファイルに入れます。
複数のユーザがいる場合には,複数の行を入れます。
この方法では,ブラウザを閉じるまでずっとログインの状態が続きます。 特にセッション管理がされるわけではなく,ブラウザが毎回自動的にパスワード(のハッシュ値)を送っているだけです。 ログアウトするには,ブラウザを閉じなければいけません(Mac では窓を閉じるだけでは駄目で,ブラウザを終了する必要があります)。
上記のようなアクセス制御をしても,Webサーバにログインできるユーザは,直接あなたのファイルを読むことができるかもしれません。 ログインできなくても,CGIやPHPなどをうまく使ってパスワードを回避することができるかもしれません。 本当に秘密のファイルは共同利用のサーバには置かず,自前のWebサーバを立てるほうが安全です。
Last modified: