.htaccessでベーシック認証を設定

2013/10/28

ベーシック認証とは?

概要

ベーシック認証とはWebサイトを閲覧するときに使うHTTPで行える認証方式です。
とても簡単に設定することが出来るところや、ほとんどのサーバーやブラウザに対応していることから広く使われています。

ネットではApacheでのサンプルが多いですが、その他のサーバーソフトでも利用できます。

盗聴、改ざんの注意

認証設定した個所にブラウザからアクセスすると、IDとパスワードの入力が求められます。
これらを入力して送信し、サーバー上の認証情報と一致するか確認が行われます。
そして、一致した場合に認証が許可されるという流れになっています。

このIDとパスワードをサーバーに送信するときは、暗号化されていなく生データが送られています。
そのため、盗聴や改ざんが容易に行えるという欠点があります。
このことを理解し、重要な部分にベーシック認証を行うのは辞めましょう。

設置手順

準備

ベーシック認証を設定するためには2つのファイルを設置する必要があります。

.htaccess ・・・ ベーシック認証の設定
.htpasswd ・・・ 認証情報

設置

.htaccess を以下のように記述して、制限をかけたいディレクトリ内に置きます。


AuthUserFile フルパス/.htpasswd
AuthGroupFile /dev/null
AuthName "Input ID and Password."
AuthType Basic
require valid-user
<Files ~ "^.(htpasswd|htaccess)$">
deny from all
</Files>

.htaccessで記述した AuthUserFile のパスに .htpasswd を置きます。
記述する文字列は、こちらのようなサイトで取得できます。
設定例 :


user:A4KoMKFP7GLhQ

テスト

ブラウザから .htaccessを設置したパスへアクセスします。
設定したIDとパスワードでログインできることを確認してください。
できなければ設定が間違っています。

今回は認証だけの設定を行いましたが、.htaccess ではIPアドレスによる制限を行うことができます。
ベーシック認証とIPアドレス制限を組み合わせて使うこともできるので、覚えておくと良いと思います。

IPアドレス制限の設定方法はこちら

Related

Vagrant+Docker+PHP環境で「session.save_path」指定時に、セッションファイルが空になるエラー

ファイル共有でのフォルダの所有者を設定 結論 PHP5.4.28 か...

LINEと連携したテイクアウト事前注文システム徹底比較!

目次 テイクアウト予約・注文受付システムのトレンド LI...

PHPで動画の撮影日を取得

PHPで動画の撮影日を取得 概要 PHPからffprobeコマンドを実行...

FullCalendarでGoogleカレンダーのようなUIを実装

jQueryプラグインFullCalendarのサンプル 概要 FullCalendarを使ç”...

PHP Laravel5.2でmulti-auth(複数テーブルでの認証)を実装

Laravel5.2でマルチ認証 概要 LaravelとはPHPの中で今最も伸びã...

PHP 正規表現でIPアドレス形式の文字列か判定

正規表現でIPアドレスの入力チェック 概要 フォームでå...
トップへ戻る