パスワードでアクセス制限するには

HOME > とほほのWWW入門 > アラカルト > アラカルト
1998年5月24日版
ある特定の人にだけページを見せたい場合、そのページをどこからもリンクを張らないようにし、見せたい人にだけURLを教えるという方法がありますが、リンクを張られると検索ロボットによって見つかったりします。

Webのサーバーが NCSA httpd や Apache の場合でかつ、プロバイダが .htaccess の使用を有効にしている場合は、以下に述べる方法でパスワードによるアクセス制限をかけることができます。

ここでは、http://www.xxx.zzz/~tanaka/himitsu/ で始まるURLに対してアクセスするとユーザー名とパスワードを求め、tarou 君は ta-ro-u というパスワードで、hanako さんは ha-na-ko というパスワードでアクセスできるようにするための設置例を示します。

  1. himitsu ディレクトリの下に .htaccess というファイルを設置してください。 内容は次のようにしてください。 FTPでファイル転送する場合は必ずテキストモードで転送してください。

    AuthType Basic
    AuthUserFile /home/tanaka/.htpasswd
    AuthGroupFile /dev/null
    <Limit GET>
      require user tarou
      require user hanako
    </Limit>
    

    AuthUserFileには、次で説明する .htpasswd ファイルのパス名を記述してください。 セキュリティ確保のため、サーバー上の絶対パス名で記述しなくてはなりません。 絶対パス名はURLでのパス名とは異なりますので注意してください。 絶対パス名が解らない場合はプロバイダに問い合わせてください。

    <Limit GET>〜</Limit>の間には、パスワードをチェックする際のユーザー名(半角文字)を列挙します。

  2. .htaccess とはどこか別のディレクトリに .htpasswd という名前のファイルを設置してください。 可能であれば、ブラウザから絶対にアクセスできない場所(public_html ディレクトリの外など)に置くのが望ましいです。 内容は次のようにしてください。 FTPでファイル転送する場合は必ずテキストモードで転送してください。

    tarou:2TZwLPP6fQYm2
    hanako:rV8onP8a3xyeQ
    

    ユーザー名とコロン( : )の後には、暗号化されたパスワードを記述します。 暗号化されたパスワードを得るには、NCSA httpd や Apache に添付されている htpasswd コマンドを用いたり、Windows用フリーソフト、An HTTPDの、[Options]→[General]→[AccessControl]→[User/Password]→[Add]を用いる方法があります。

以上で設置は完了です。 ここでは、各ディレクトリに対するアクセス権を設定する方法について述べましたが、サーバーの管理者であれば、サーバーコンフィグレーションファイルにより、もっと厳重にパスワード制限することができます。 サーバーのマニュアルを参照してください。

人様のパスワードを預かる場合、セキュリティには充分注意してください。 多くの人は同じパスワードを使いまわしています。 あなたの管理している人様のパスワードが第三者に漏れた場合、それは、あなたのサービスが不正使用されるだけでなく、人様の他のサービス(例えば重量課金接続)までもが不正使用される可能性があることに注意してください。

また、前述同様、.htaccess ファイルに以下のような記述を行うことにより、特定のホストからしかアクセスできないような制限をかけることも可能です。

<Limit GET>
order deny,allow
deny from all
allow from xxx.or.jp

order行は、次に続く行のうち、deny行、allow行の順番で評価することを意味します。

deny行は、すべてのホストからのアクセスを禁止しています。

allow行は、例外として xxx.or.jp で始まるホストからのアクセスを許可しています。 DNSによる名前解決ができない場合はIPアドレスを指定することも可能です。


Copyright(C) とほほ ( http://www2e.biglobe.ne.jp/~s-hasei/ )