私が実務で一番よく使う.htaccessの記述、ベーシック認証についてまとめてみました。
Basic(ベーシック)認証とは?
Webサイトに、最も簡易的に閲覧制限をかけることができる方法のことです。ファイルに数行の記述をするだけで簡単にアクセス制限をかけることが可能です。
ページにアクセスした際に、「IDとパスワードを入力してください」という画面を出す認証機能のひとつ)です。
どんな時に使用するのか
Web制作会社の場合、公開前のWebサイトやテスト環境など、関係者のみが閲覧できるようにベーシック認証をかけることがあります。
公開前サイトの閲覧管理・・・本番環境へ事前にデータを置いておく場合によく使います。本番環境でチェックができますし、公開時はベーシック認証を外すだけになります。
特定ユーザー向けコンテンツの管理・・・会員専用ページもこの設定をすることがたまにあります。ただ、あくまでも簡易的な機能であり、「手軽にアクセス制限をしたい」というニーズに応えるものです。
検索エンジンに掲載したくないコンテンツの管理・・・テスト環境などは検索エンジンに掲載したくないので、私が働いている会社では、必ず設定することが義務付けられています。
ベーシック認証の設定方法
サーバーに「.htaccess」ファイルと「.htpasswd」ファイルを作成し、それぞれに特定の記述を行うだけで完了です。
1.「.htaccess」ファイルを作成
1-1 エディタを使って新規ファイルを作成
まず、エディタを開いてファイル名を「.htaccess」で設置したいディレクトリへ保存しましょう。
1-2 記述するのは4行のみ!
AuthType Basic
AuthName "[認証名]"
AuthUserFile ".htpasswdファイルの場所"
require valid-user
それぞれの行の意味をとは?
AuthType Basic・・・認証方式
AuthName ” [認証名] “・・・認証の名前を任意で設定(半角英数字)
AuthUserFile ”[.htpasswdファイルの場所]”・・・URLではなく、サーバー内でのフルパスで記述
require valid-user・・・全ユーザーに認証を求めるようにするという意味
1-3 フルパスを調べる
BASIC認証を設定するためには、「.htaccess」「.htpasswd」というファイルを作成して認証を適用したいディレクトリにアップロードする必要があります。
そのファイルを作成するのにあたって、フルパスといってそのディレクトリの絶対的位置を記述するため、まずはそのディレクトリがルートディレクトリからどこにあるのかを知る必要があります。
以下のスクリプトをコピーペーストしてテキストファイルを作成し、任意の名前に「.php」という拡張子を付けて保存してください。
<?php
echo __FILE__;
?>
このPHPファイルを、BASIC認証を設定したいディレクトリにアップロードして、ブラウザからアクセスします。
すると、このPHPファイル自身のフルパスが表示されます。
2.「.htpasswd」ファイルを作成
「.htpasswd」は、IDとパスワード情報を格納するためのファイルです。
2-1 エディタを使って新規ファイルを作成
「.htaccess」と同じディレクトリへ「.htpasswd」というファイル名のファイルを作成します。
2-2 ユーザ名とパスワードを1行ずつ記述
[ユーザー名1]: [暗号化されたパスワード1]
[ユーザー名2]: [暗号化されたパスワード2]
パスワードはテキストエディタに直接入力したものではなく、暗号化されたものでなければいけません。
ベーシック認証用のパスワード生成ツールを無償提供しているサイトは多数あるので、「htパスワード 生成」などのキーワードで検索して、自分が使いやすいものを利用するとよいでしょう。
今回はベーシック認証用のパスワード生成ツールでよく使っているものを紹介させていただきます。
3.ファイルをアップロード!
記述が完了したら、「.htaccess」ファイルで指定した場所にファイルを保存・アップロードして完了です。
ベーシック認証の特徴
1.認証完了後はブラウザを閉じるまで有効
ベーシック認証は、ユーザーが正しいIDとパスワードで認証に成功した場合、ブラウザを閉じるまでの間は再認証なしで何度でもアクセスすることが可能になります。ブラウザさえ閉じていなければ、仮に、違うWebサイトを閲覧した後でも認証なしで再びアクセスすることが可能です。
2.クローラーもアクセスできない
ベーシック認証を設定すると、その領域には検索エンジンなどのクローラーもアクセスすることができなくなります。テスト環境などのアクセスされたくないページに設定ができます。
3.サーバーをまたいだ設定はできない
設定できる範囲は「.htaccess」ファイルのを設置したディレクトリのみが対象です。ディレクトリを超えた範囲、例えばサーバーをまたいで同じベーシック認証を設定することはできません。
4.セキュリティの脆弱性
Basic認証でWebサイトにログインする際は、Base64と呼ばれる変換方式が使われます。
Base64は、アルファベット・数字・記号の64種類の文字のみが利用可能です。データが暗号化されないままやり取りを行うため、安全ではありません。サイトにアクセスする際のログイン情報が盗聴される危険性があります。
特にベーシック認証をかけたWebページが「https」ではなく、SSL対応がされていない「http」通信である場合合、外部からログイン情報が盗聴されやすくなっているため注意が必要です。
まとめ
手軽にアクセス制限をかけることができるベーシック認証(Basic認証)の基本をまとめてみました。
覚えることができれば簡単に設定できるようになります。
参考
今回参考にさせていただいたサイト・ページのご紹介です。
コメント