httpで運用されているWordPressはログイン情報は生データでPOSTしているので、パケットが盗聴されたらログイン情報が漏洩してしまいます。
そこで、チャレンジレスポンス方式であるDigest認証をワンクッション置くことで、セキュリティを高めようという魂胆です。
httpsで運用している場合でもwp-login.phpに認証を掛けることでブルートフォースアタックによるログが減ってエコだと思います。
Digest認証用の.htpasswdファイルを作成
ウェブ上にBasic認証用の.htpasswd作成ツールはありましたが、Digest認証用は無かったのでLinux環境でhtdigestコマンドで作成します。
構文:htdigest -c パスワードファイル AuthName ユーザーID
$ htdigest -c .htpasswd lOgIn root
作成したファイルをWordPressのインストールディレクトリにアップします。
.htaccessを編集
WordPressのインストールディレクトリ直下の.htaccessに追記します。
<Files wp-login.php>
AuthType Digest
AuthName "lOgIn"
AuthUserFile /foo/bar/hoge/blog/.htpasswd
require valid-user
</Files>
「AuthUserFile」のディレクトリが分からない場合「<?php phpinfo(); ?>」と書いたphpファイルをアップしてアクセスすると「SCRIPT_FILENAME」が分かるのでそれを参考に設定します。phpinfo();を記述したファイルは忘れず削除しましょう。
※.htaccessや.htpasswd等の編集に絶対にnotepad.exeを使用しないでください。BOMが埋め込まれてInternal Server Errorになります。
成功していればwp-login.phpにアクセスするとパスワードのプロンプトが表示されます。
Digest認証自体は大昔からあるのに未だ普及していないのはなぜだ。