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」に記述します。
記述するのは「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>
フロント側で使っている可能性がありますので、これを忘れてしまうとフロント側でBasic認証を聞かれるようになってしまいます。
この「.htaccess」を「/wp-admin/」へアップロードしてください。
これで管理画面全体にもBasic認証がかかります。
お疲れ様でした
これで管理画面へのBasic認証の設定終了です。
セキュリティとしては最低限ですが、これぐらいは設定しておきたいですね。