WordPress:WordPressのログイン画面にBasic認証を設定する

WordPress管理画面のセキュリティを高める為に、ログイン画面Basic認証を設定しました。

WordPressのログインで初期のユーザー名は「admin」で設定されます。
ユーザー名を変えずに「admin」のまま使用している場合は、
ユーザー名の変更をオススメします。

また、WordPressのログインは「wp-login.php」にアクセスするとログイン画面が表示されます。
誰でもアクセスできる状態なので、IPアドレス制限Basic認証をかけた方がいいと思います。

今回、ワードプレスの不正ログイン対策として「wp-login.php」にベーシック認証を設定しました。
そのベーシック認証を設定した時の方法をメモします。


WordPressのログイン画面にBasic認証を設定

以前、特定のファイルにBasic認証を設定する方法を記載しました。

.htaccess:Basic認証を特定のファイルに設定

この方法を使って「wp-login.php」にBasic認証を設定します。

Basic認証を設定する為に、「.htaccess」「.htpasswd」を用意します。
下記で作成することができます。

http://www.htaccesseditor.com/#a_basic

「.htaccess」はドキュメントルートに存在するかもしれないです。
ある場合は、「.htaccess」に下記のコードを追加します。

<Files ~ "^\.(htaccess|htpasswd)$">
deny from all
</Files>
<Files wp-login.php>
AuthUserFile /home/www/test/html/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
order deny,allow
</Files>

「AuthUserFile /home/www/test/html/.htpasswd」に「.htpasswd」までのパスを記述します。
※サーバや環境によって違います。

下記を設定することで「wp-login.php」にBasic認証を設定することができます。

<Files wp-login.php>

</Files>

設定が完了し、ドキュメントルートに「.htaccess」「.htpasswd」をアップロードすれば完了です。

ログイン画面にアクセスし、ベーシック認証がきかれてログインできることを確認します。

wordpress_basic


ワードプレスでログインする環境が決まっていれば、IPアドレスでアクセス制限をかけてもいいのですが、
携帯やPC、色々な環境でログインする場合はベーシック認証することをオススメします。

二重にロックをかけることでセキュリティが高まると思うので、試してみてください。

CakePHP:CakePHPでBasic認証を簡単に設定

CakePHPコントローラーごとにベーシック認証をかけたい場合、
Securityコンポーネントを使用すると簡単に設定することができます。

通常、Basic認証は「.htaccess」で設定しますが、
「.htaccess」を使用しないで設定できるのでとても楽です。

サイト全体に設定せずにコントローラーごとに設定したい場合などは良いと思います。

下記にCakePHPSecurityコンポーネントを使用してコントローラーごとにベーシック認証を設定する方法をメモします。


CakePHPでBasic認証を設定

Basic認証を使用したいコントローラーに下記の設定をします。

コントローラー(Controller)

Securityコンポーネントを使用するよう呼び出します。

class SampleController extends AppController {
	// Securityコンポーネント
	var $components = array('Security');

}

共通処理のbeforeFilter()にBasic認証の設定をします。

	function beforeFilter() {
		parent::beforeFilter();

		// Basic認証の設定
		$this->Security->loginOptions = array('type' => 'basic');

		// ユーザー名、パスワードの設定(複数可能)
		$this->Security->loginUsers = array('hoge' => 'password');

		// 全てのアクションに設定
		$this->Security->requireLogin('*');
	}

上記の設定をするだけなので簡単にBasic認証を設定することができます。
また、アクションごとにも設定することができるので便利です。

.htaccess:Basic認証の記述方法と説明

Basic認証について、色々調べたので記述方法簡単な説明をメモします。

すぐ忘れてしまうので。

Basic認証を作成するツールは色々あります。
私は下記のサイトを使用して「.htaccess」と「.htpasswd」を作成することが多いです。
こちらを使えば簡単にパスワードを作成することができます。

http://www.htaccesseditor.com/#a_basic

下記にBasic認証書き方設定内容の説明を記述します。


Basic認証を設定する時の.htaccessの書き方

※例です。

<Files ~ "^\.(htaccess|htpasswd)$">
deny from all
</Files>
AuthUserFile /home/hoge/html/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
order deny,allow

Basic認証 設定内容の説明

Files

<Files ~ "^\.(htaccess|htpasswd)$">
deny from all
</Files>

「.htaccess」と「.htpasswd」を見せないようにする為の指定です。
記述しなくてもいいのですが、パスワードファイルをドキュメントルート以下に置く場合は参照されないように記述した方がいいと思います。

AuthUserFile

AuthUserFile /home/hoge/html/.htpasswd

.htpasswd(パスワードファイル)までのパスを指定します。
パスはサーバのフルパスを記述します。

AuthGroupFile

AuthGroupFile /dev/null

グループファイルを指定する時に使用します。
グループを使用しない場合は「/dev/null」を記述します。

AuthName

AuthName "Please enter your ID and password"

認証時のダイアログボックスに表示する文字列を記述します。

AuthType

AuthType Basic

認証の方法です。
Basic認証の場合は「Basic」を記述します。

require

require valid-user

認証するユーザを指定します。
全てのユーザにアクセスを許可する場合は、「valid-user」を記述します。


.htaccess:Basic認証を特定のファイルに設定

Basic認証を使用してアクセス制限をかける時に特定のファイルのみにアクセス制限を設定したい場合があります。

ディレクトリごとBasic認証をかける場合は「.htaccess」をアクセス制限をかけるディレクトリに設置すればいいのですが、
ディレクトリ内の全てのファイルが対象となってしまいます。

ディレクトリ内一部のファイルのみにアクセス制限を設定したい場合は、下記のように記述します。


Basic認証を特定のファイルのみに設定

※下記「test.php」ファイルにBasic認証を設定する場合

ディレクトリ内のファイル一覧

.htaccess
.htpasswd
index.php
hoge.php
test.php

.htaccess

「Files」で「test.php」を指定すれば、「test.php」にBasic認証かけることができます。

<Files ~ "^\.(htaccess|htpasswd)$">
deny from all
</Files>
AuthUserFile /home/hoge/html/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
order deny,allow
<Files test.php>
require valid-user
</Files>

複数ファイルを指定したい場合は下記のように記述します。

<Files ~ "^\.(htaccess|htpasswd)$">
deny from all
</Files>
AuthUserFile /home/hoge/html/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
order deny,allow
<Files ~ (hoge.php|test.php)>
require valid-user
</Files>

「*」を使用してワイルドカードで指定することも可能です。


一部のファイルだけアクセス認証(Basic認証)をかけたい場合に良いと思います。

.htaccess:Basic認証で複数アカウントを登録

WEBサイトを制作していると公開前の場合など、アクセス制限をかけることが多いと思います。
また、特定の人にのみ参照可能にするページを作成する場合があります。

Basic認証ベーシック認証)をかければ簡単に認証機能を付けることが可能です。

Basic認証は複数アカウントを設定することができ、アカウントごとにIDとパスワードを設定することができます。
下記にBasic認証複数アカウント登録する方法をメモします。


Basic認証で複数アカウントを登録

「.htaccess」にBasic認証を設定します。
※「AuthUserFile」に「.htpasswd」までのパスを記述します。

.htaccess

<Files ~ "^\.(htaccess|htpasswd)$">
deny from all
</Files>
AuthUserFile /home/hoge/html/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user 
order deny,allow

複数アカウント登録する場合はアカウントごとに改行して記述します。

.htpasswd

test:Qc1I4UTNjzXEA
hoge:o4QIJGcEe6SXs

Basic認証で複数のアカウントを登録することはあまりないと思いますが、
改行して記述すれば複数アカウントを登録することが可能です。