httpでもセキュアになる?wp-login.phpにDigest認証を掛ける

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認証自体は大昔からあるのに未だ普及していないのはなぜだ。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA