WordPressの管理画面は誰でもログイン用フォームにアクセスできる
取り敢えずデフォルトのフォームではなくBasic認証をかける
Basic認証をかける意義とは?
WordPressにBasic認証をかけない状態だと入力フォームのブルートフォースで(総当たり)不正ログインを試行することができる
これはパスワードの入力を自動化したりしていくらでも仕掛けられるので非常に厄介
Basic認証をかけると入力に失敗した際アクセス拒否を告げるページが表示されるのでこのワンクッションがあるだけでも攻撃者を萎えさせることができるのだ
またシンフリーサーバーやWordpress側の設定でログイン試行回数を制限することである程度不正を防ぐことはできるがそもそも入力フォーム自体に何らかのバグが有ってログイン以上の事ができる(CSRFなど)可能性もあるので
入力フォームを隠す行為がセキュリティ的には重要なのだ
では早速以下からBasic認証の設定に移ろう
①.htpasswdを作成
Apache Loungeからhttpdをダウンロード
https://www.apachelounge.com/download/
zipファイル内の/Apache24/bin内のhtpasswd.exeを任意の場所に置く
コマンドプロンプトで先程の場所を開き以下のコマンドを入力htpasswd.exe -c .htpasswd <username>
今回は例としてユーザーネームをID、パスワードをpasswordとする
Z:\>htpasswd.exe -c .htpasswd ID
New password: ********
Re-type new password: ********
Adding password for user ID
これでユーザーネームと暗号化されたパスワードが記述された.htpasswdファイルができる
試しに中身を見てみると
ID:$apr1$Q/J5ooda$iYsq8w7dpmkORkEQktX321
記述ルールは <ユーザーネーム>:<暗号化されたパスワード> となる
②.htpasswdファイルをサーバーにアップロード
作成した.htpasswdファイルをシンフリーサーバーにアップロードする
FTP経由でも良いがシンフリーサーバーのアカウントにファイルマネージャーがあるのでこれを使用する
アップロード先は/WordPressルートディレクトリ/public_html
③.htaccessファイルを編集
.htpasswdを使用するため.htaccessファイルに以下を記述する
※.htaccessファイルの先頭に記述する
<Files wp-login.php>
AuthUserfile /サーバーのルートから見たフルパス/public_html/.htpasswd
AuthGroupfile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
</Files>
編集にあたってはシンアカウントのサーバーパネル→ホームページに.htaccess編集というのがあるのでこれで編集できるwp-login.phpファイルがWordPress管理画面へログインする機能となるが以上の設定でこのファイルにアクセスする際に追加でBasic認証が必要になる
ちなみにBasic認証は一度認証をパスするとブラウザを閉じるまで認証が有効なままらしいのだが設定できたかどうかのテストするために再認証したい場合には
https://me@wastedays.cloudfree.jp
などのように
”任意の文字@アクセスするURL”と入力して表示してからまた本来のURLを入力すると再度Basic認証が行われる
但しFirefoxではできるがchromeなど一部のブラウザではできない模様
Basic認証設定後はログイン処理が二重化される
Basic認証に設定したIDとパスワードはWordpressにログインするためのものとは別で
まずBasic認証のIDとパスワードでログインすると今度はWordpressのログインフォームに移るのでそっちはWordpress用のIDとパスワードが必要
もちろんBasic認証とWordpress両方を同じ設定にしても良いがセキュリティ強度は落ちるが利便性は向上する
まあBasic認証無しよりよっぽどいい






コメントを残す