BASIC認証はWebサイトの閲覧に使うプロトコル「HTTP」が備える、最も基本的なユーザ認証方式です。簡単に設置できるアクセス制限である反面、盗聴や改竄が簡単であるという欠点を持ちます。
まずは、認証のためのパスワードファイルを作ります。 このファイルは、ウェブ上からアクセスできる場所には置くべきではありません。
ファイルを作るためには、Apache 付属の htpasswd を使います。
# htpasswd オプション パスワードファイル名 ユーザー名 htpasswd -c /var/www/passwd/.htpasswd myname
htpasswd は、パスワードを要求し、その後 確認のためにもう一度入力するように要求してきます。
# htpasswd -c /var/www/passwd/.htpasswd myname New password: mypassword Re-type new password: mypassword Adding password for user myname
PHPからでも簡単に htpasswd ファイルを作成することができます。
<?php $id = "myname"; $pass = "mypassword" $value = $id . ":" .crypt($pass,$pass); echo $value; ?>
出力結果を .htpasswd ファイルに書き出してください。
次にサーバがパスワードを要求するように .htaccess ファイルを作成します。
例えば、/var/www/html/secret ディレクトリを保護したい場合は、/var/www/html/secret/.htaccess にファイルを作成します。
AuthType Basic ← 認証方法 AuthName "Restricted Files" ← 認証に使う領域を設定 AuthUserFile /var/www/passwd/.htpasswd ← htpasswd で作ったパスワードファイルへのパス Require user myname ← アクセスできるユーザを指定 Require valid-user ← パスワードファイルにリストされている人であれば誰でも許可されます。
BASIC認証はクライアントからブラウザへ、 パスワードを暗号化せずに送ります。この方法は特に機密性の高いデータに対しては用いるべきでは ありません。
投稿日: