プロ・クリエータの実践ウェブテクニック集



Basic認証

 Apacheでは、Basic認証をすることにより、ディレクトリ単位でアクセス制限を設定することができます。
設定方法は、htaccessファイルにBasic認証の詳細を記述して、htpasswdファイルに許可するユーザー名と暗号化されたパスワードを記述します。

 htaccessとhtpasswdによる認証はファイルの走査に時間がかかるので、比較的ユーザーが少ない場合に使用します。 ユーザーが多い場合は、htpasswdファイルの代わりにデータベースの使用を検討してみてください。

Unix系 暗号化ツール

 Unix系のサーバーについては下記の暗号化ツールが使用できます。
暗号化は一方向性で可逆性はありません。 例え閲覧されても解読は非常に困難です。

◇暗号化ツール
ユーザー名
パスワード
 
User line →

*注)暗号化されたパスワードは、Unix系、Windows系などサーバーの種類によって異なりますから、同機種間でないと共有できません。

htaccessの記述

 htaccessファイルにBasic認証の詳細を記述します。
".ht"で始まるファイルを閲覧できないようにしておけば、セキュリティ効果を引き上げることができます。

 AuthUserFileで認証用ユーザーファイルの名前と設置場所を指定します。 htaccessファイルと同じ場所に設置しても特に問題ありませんが、心配なら一般の閲覧者がアクセスできないドキュメントルート以上に設置して、パーミッションを604にしておきます。

# File hidden. <Files ~ "^\.ht"> Order allow,deny Deny from all </Files> # Auth AuthUserFile /home/xxx/.htpasswd AuthGroupFile /dev/null AuthName "Secret Area" AuthType Basic require valid-user

htpasswdの記述

 htaccessで指定した認証用ユーザーファイル".htpasswd"を作成して、ユーザー名と暗号化されたパスワードを1行ずつ貼り付けます。

ichiro:$1$k5FS9h8.$k404YuTrYnB1NLh./psx40 hanako:$1$CVDlg8Po$CbCkYV1FaB.a14rYreCi01

確認

 Basic認証を設定したディレクトリにアクセスして確認します。

Basic認証画面