【WordPress】管理画面にBasic認証をかけよう

WordPress WordPress

WordPress、仕事でよく使いませんか?
便利ですし、何よりわからないことがあっても聞ける人が多いし、ネットで調べやすいですしね。

ただ、使ってる人が多いということは、その分不正アクセスも多くなるわけで…
WP自身のバージョンアップは当然するとして、その他の対策もしましょう。

ということで、最低限のセキュリティ対策として、私は管理画面にBasic認証をかけてます。
(当然、これだけではありませんが)

Basic認証を設定しよう

Basic認証の説明は省きます。
まずは「.htaccess」「.htpasswd」の2つのファイルを用意します。

※「.htaccess」は、WPをインストールしたら作られていると思いますので、そこに追記します。
ただ、ここで書き方を間違えてしまうとサイト自体が動かなくなってしまうため、
必ずバックアップファイルを作成してから触ってください。

.htpasswdファイルを作ろう

「.htpasswd」とは、ユーザ名・パスワードを決まった記述(パスワードは暗号化)をしたファイルです。
(ファイル名は必ずしも.htpasswdでなくてもいいですが、通常は.htpasswdにします)

パスワードは暗号化にするということで、当然暗号化したパスワードを用意しなければいけません。
Googleで「.htpasswd」で検索してWEBサービスサイトを見つけてもいいですが、
自分がよく使うのはこちら
(まあ、Google検索で1位のサイトですがw)

こちらでユーザ名を「hoge」。
パスワードを「moge」で作成したのがこちら。

hoge:m3FIAvykraGo2

これをテキストファイルに記述して、「.htpasswd」で保存します。
※Windowsの標準メモ帳だと「.htpasswd」で保存出来ないかもしれませんが、その時は「htpasswd.txt」などで保存し、サーバアップ後に「.htpasswd」とリネームしてください。

作成した「.htpasswd」をFTPなどでサーバにアップします。
この時、出来得る限り公開ディレクトリより上位にアップするのが望ましいです。
公開ディレクトリだと、覗き見ることが出来てしまうのでセキュリティにならない。

「.htpasswd」へのフルパスが必要ですので、フルパスを調べましょう。
たいていのFTPソフトでパスをコピー出来るかと思うので、それを控えておきます。

.htaccessファイルに記述しよう

「.htaccess」を触る場合は必ずバックアップを作成しましょう

下記の記述を「.htaccess」に記述します。
記述するのは「wp-login.php」と同じディレクトリにある「.htaccess」。

<Files wp-login.php>
  AuthType Basic
  AuthUserFile #.htpasswdへのフルパスを記入 例:/home/hoge/www/.htpasswd(先頭の#はコメントになるので、これも削除)
  AuthGroupFile /dev/null
  AuthName "Please enter your ID and password"
  require valid-user
</Files>
# ここより上に記述する
# BEGIN WordPress

# END WordPress

これでログイン画面にBasic認証がかかってるはずです。

管理画面全体にBasic認証をかけよう

最後に、ログイン後の管理画面全体にBasic認証をかけます。
今度は新規で、上記と同じようにテキストエディタなどで「.htaccess」を作成します。

AuthType Basic
AuthUserFile #.htpasswdへのフルパスを記入 例:/home/hoge/www/.htpasswd(先頭の#はコメントになるので、これも削除)
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
require valid-user
<FilesMatch "(admin-ajax.php)$">
  Satisfy Any
  Order allow,deny
  Allow from all
  Deny from none
</FilesMatch>
「FilesMatch」部分は必ず入れてください。
フロント側で使っている可能性がありますので、これを忘れてしまうとフロント側でBasic認証を聞かれるようになってしまいます。

この「.htaccess」を「/wp-admin/」へアップロードしてください。
これで管理画面全体にもBasic認証がかかります。

お疲れ様でした

これで管理画面へのBasic認証の設定終了です。
セキュリティとしては最低限ですが、これぐらいは設定しておきたいですね。

タイトルとURLをコピーしました