プラグインなしでWordPressのログイン画面にBasic認証を設定する方法

Basic認証のイラスト

WordPressのログイン画面URLへのアクセスは簡単で、ウェブサイトのURLの末尾に/admin/(例:www.sample.jp/admin/)または/login/(例:www.sample.jp/login/)と入力することで、ログイン画面にリダイレクトされます。

かかかず
かかかず

簡単なのはいいことですが、セキュリティ面を考えると色々不都合があります。

その為、ログイン画面に辿り着けてしまえば、脆弱なパスワードはプログラムで驚くほどの短時間で破ることができ、ユーザー名については調べたいサイトURL/?author=1 と入力することで調べることができてしまいます。

この情報を基に、ブルートフォースアタックと言われるありとあらゆるユーザーIDとパスワードを使ってログインを試みる手法でログインされてしまった場合、悪意のあるコードの埋め込みや、サイトの消去もされてしまう可能性があるので対策が必要です。

この記事では、

  • Basic認証とは?
  • プラグインなしでBasic認証をかける手順。
  • Basic認証の作り方。

についての内容になっています。プラグインを入れるのは極力避けたい方や、セキュリティ強化の為に是非ご覧の上試してみてください。

Basic認証とは?

Basic認証とは、WEBサイトのページやファイルにアクセス制限をかけることができる認証方法の1つで、ほとんどのサーバーで設定することが可能です。

Basic認証の画面
Basic認証のサンプル画面

Basic認証を設定することで、ユーザー名・パスワードで認証させる簡易的なアクセス制限が可能ですが、ディレクトリ単位で制限をかけたりすることができます。

設定は簡単で、設定の記述を行う .htaccess ファイルを設置してBasic認証の範囲とすることができます。

Basic認証を設定することのメリット

WordPressはログイン画面に、ID・パスワードを入力した場合、一回一回データベースを参照します。

その為、前述したブルートフォースアタックをされてしまうと、サーバーに負荷がかかります。

かかかず
かかかず

ブルートフォースアタックは、悪意ある人がありとあらゆる方法でログインを試みる手段です。

Basic認証を設定することで、セキュリティ面での恩恵が得られるのはもちろんですが、Basic認証によってサーバーへの負担を大幅に軽減することができます。

その為、不正なアクセスによる負荷が考えられる場合も、Basic認証を設定することを検討しましょう。

Basic認証の設定方法と手順

Basic認証の設定は、.htaccess.htpasswd ファイルを作成して、wp-adminへの設置をすることで設定が完了します。

.htpasswdにログイン用のIDとパスワードを記載

はじめに BASIC認証のユーザー名とパスワードを記載した .htpasswd ファイルを作成します。

例えば、下記のIDとパスワードを設定するとします。
・ログインID:sampleid
・パスワード:samplepasu

BASIC認証は盗聴や改竄が簡単であるという欠点を持ってる為、IDの「sampleid」とパスワード「samplepasu」を、以下のようなサイトを使いIDとパスワードを暗号化する必要があります。

写真:htpasswd用パス作成ツール より

すると「sampleid:4261Dy9QtAEmY」のようなIDと暗号化されたパスワードが生成されるので、メモ帳などでファイル .htpasswd を用意して、生成されたIDとパスワードを記入します。

wp-adminに.htpasswdをアップロード

WordPressのディレクトリ「wp-admin」へ、作成した .htpasswd のファイルをアップロードします。

.htaccessにBasic認証を設定

メモ帳などでファイル .htaccess を用意して、下記をコピペします。

.htaccess

AuthUserFile ファイルパス/wp-admin/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
<FilesMatch "(admin-ajax.php)$">
Satisfy Any
Order allow,deny
Allow from all
Deny from none
</FilesMatch>

AuthUserFile には、.htpasswd を設置したファイルパスを指定する必要があります。

設置したファイルパスが不明な場合、 sample.php というファイルに次のコードを追加してして、.htpasswd を設置したディレクトリにsample.phpも設置しましょう。

phpに記述する内容

<?php echo __FILE__; // フルパスを表示 ?>

設置した sample.php ヘブラウザでアクセスすると、sample.php までのフルパスが表示されるので、そのパスを参照して AuthUserFile で指定しましょう。

.htaccessを wp-admin のディレクトリにアップロード

設置した.htpasswd ファイルと同じ階層のディレクトリ「wp-admin」に .htaccess をアップロードすれば完了です。

WordPressのログイン画面にアクセスして、ID、パスワードを求められるアラートが表示されるので、.htpasswd で設定したIDとパスワードを入力してログイン画面が表示されれば成功です。

さいごに

管理画面にBasic認証をかければ、それだけでセキュリティ面でも安心で、この手順は簡単なものなので是非セキュリティ強化をはかっておきましょう。

さいごにこの記事をまとめると、

  • Basic認証の為にまずは.htaccessを編集。
  • .htpasswdで認証用のID・パスワードを作成。
  • 編集した.htaccessと.htpasswdをアップロードして完了。

です。是非この記事を参考に試してみてください。

カテゴリーのイラスト

同じカテゴリの記事一覧

ボタンの影