エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


WordPressの管理画面ログインURLファイルにBasic認証を設定する方法解説

      2017/03/12

WordPressの管理画面のセキュリティ対策

 

WordPressを使うことのリスクって?

 
この一連の記事では、WordPressのセキュリティ対策として、管理画面のログイン URLに対するセキュリティ強化策として、下記の 3点を提案しています。
 
この記事は、そのうちの 3番目の項目となる管理画面のログイン URLに Basic認証を設定する記事になります。
その他の 2つの記事はそれぞれ下記のリンクから参照していただきつつ、Basic認証の設定方法の解説をご確認ください。
 

  1. 管理者のアカウント adminを変更する
  2.  「WordPressのユーザ名を後から変更する方法。adminの使用は危険。
     

  3. 管理画面のログイン URLを変更する
  4.  「WordPressの管理画面ログインURLの変更方法解説
     

  5. WordPressの管理画面ログインURLファイルにBasic認証を設定

 
 

管理画面ログイン URLに Basic認証を設定する

 
WordPressの管理画面のログイン URLに Basic認証を設定する方法の解説です。
 
Basic認証と言えば、フォルダ単位で認証設定をする際によく用いられるものですが、実はファイル単位での設定も可能なのです。
(レンタルサーバのコントロールパネルから設定する Basic認証は、ほぼフォルダ単位での認証設定しかできません。)
 
そこでここでは、Basic認証を利用して、WordPressの管理画面のログインに使うファイルにだけ Basic認証を設定し、ログイン画面にアクセスする際に認証をさせよう、という処理です。
 
これにより、2回のログイン認証を通らないと管理機能を利用できるようになりませんので、セキュリティの強度はぐっと高まります。
WordPressの管理画面の URLを探し、ログインを試みる不正プログラムへの対応としては、そもそもログイン画面へアクセスさせないという意味で非常に強力な対応方法になります。
 
ただ、2回もパスワードを入力する必要がありますので、日々の運用の際の面倒さは増えますが、それぞれブラウザに記憶させておけば全く気にならない問題かと思います。(より高いセキュリティを求めるなら、ブラウザに記憶させておくべきではないですが...)
 
 

Basic認証とは

 
Basic認証の基本的な説明もしたいとは思っていますが、それだけで 1記事になるだけのボリュームになりますので、いずれ書きたいと思っていますが、ここでは簡単に説明しておきます。
 
Internet Explorerの場合
20140805_wp_01
 
Firefoxの場合
20140805_wp_02
 
Basic認証は、サーバ(Apache)が持つ機能で、「.htaccess」「.htpasswd」の 2ファイルを設定することで、上記のようなダイアログの認証画面を表示し、アクセス制限を設定することができる機能です。
 
.htaccess  アクセス制限の条件を記述するファイル
.htpasswd  ログイン認証のための ID、PASSを設定してあるファイル
 
 
また、WordPressがインストールしてあるフォルダに、レンタルサーバのコントロールパネル(管理画面)から Basic認証を設定する仕組みを使って設定する場合は、不具合の原因になる場合がありますので注意が必要です。
その原因や解決策を「ロリポップで baserCMSを利用する際の Basic認証の設置には注意しましょう」で解説していますので、WordPressをインストールするフォルダを決める際に確認しておくことをおススメします。
 
 

管理画面ログイン URLに Basic認証を設定する具体的な手順

 
Basic認証を設定するには、「.htaccess」「.htpasswd」の 2ファイルを作成し、サーバにアップすることで設定を行うことができます。
 
 
まず最初に、「.htaccess」です。
 
WordPressをインストールしたルートフォルダにはあらかじめ「.htaccess」が生成生成されていますので、まずそれをダウンロードしてきます。
テキストエディタで開くと下記のような記述があると思います。(4行目の「RewriteBase /」の部分は、WordPressをインストールした環境によって変わります。)
 
.htaccess
————————————————-

————————————————-
 
この記述に続けて、下記の記述を追記します。
————————————————-

————————————————-
 
上記の記述のうちで、下記の 3点を修正します。
 
1行目の「<Files wp-login.php>」の部分を修正します。
ここで記述するファイル名(wp-login.phpの部分)は、「WordPressの管理画面ログインURLの変更方法解説」で WordPressの管理画面のログイン URLを変更した場合は、その変更したファイルを指定します。
上記の記事に書いていた通りに設定した場合は「wp-login-change.php」を指定することになります。
WordPressの管理画面のログインURLをデフォルトのまま変更していない場合は、上記の通り「wp-login.php」のままの記述にします。
 
2行目の「AuthUserFile /wordpress/.htpasswd」の部分を修正します。
この「.htpasswd」は、「.htpasswd」が置いてあるパスを記述します。上記の例では分かりにくいのですがサーバのルートから絶対パスで指定します。(WordPressのルートや、レンタルサーバで契約しているドキュメントルートからのパスではなく、サーバのルートからのパスになります。)
 
4行目の「AuthName “Member Only”」の部分を修正します。
「Member Only」の部分は、表示される Basic認証のダイアログに表示するメッセージを指定する箇所です。
日本語は使えませんが、好きなメッセージを表示できますので、好みで編集してください。もちろん「Member Only」のままでも何の問題もありません。
 
 
続けて「.htpasswd」を作成します。
 
まず「.htpasswd」のファイルを作成します。
 
ですが、Windowsパソコンでは、ファイル名がない拡張子だけの「.htpasswd」ファイルは作成できませんので、まず「a.htpasswd」として空のファイルを作成をします。
そして、FTPでサーバにアップした後、アップされたファイルのファイル名を、FTPソフトの名前変更機能を使って「a」の部分を削除し、それをダウンロードすることで「.htpasswd」を作成することができます。
 
「.htpasswd」の中に記述する ID、PASSは下記のサイトなどから作成を行います。
 Basic認証の.htaccess、.htpasswd生成ツールと解説
 
上記のサイトに ID、Passwordを入力し「生成」をクリックすることで「.htpasswd」の箇所に IDと Passwordを暗号化したテキストが生成されますので、それを先ほど作成した「.htpasswd」にコピペして保存します。
 
.htpasswd
————————————————-

————————————————-
 
上記の例は 2件の「sgiken」「ssgiken」のユーザを設定した場合の例ですが、複数の ID、PASSを設定したい場合は、複数の ID、PASSを生成し、上記のように 1行に 1つの IDとなるように編集していきます。
1ユーザのみであればもちろん 1行だけ記述すれば OKです。
 
作成した「.htaccess」「.htpasswd」の 2ファイルをサーバにアップすることで、Basic認証が設定されます。
 
改めて、WordPressの管理画面のログイン URLにアクセスをして、Basic認証が設定されたことを確認しましょう。
 
 


 

Basic認証の設定でよくある失敗ポイント

 
うまくいかない場合のポイントとしてよくある失敗例を説明しておきます。
 

設定した ID、PASSでログインできない場合

 
URLにアクセスして Basic認証のダイアログが表示され、ID、PASSを入力しているけれど、何度入力しても設定した ID、PASSでログインできない、という不具合の場合です。
 
その場合は、たいてい .htaccessの 2行目に書いている .htpasswdファイルへのパスが間違っています。
.htpasswdへのパスが間違っている場合は、正しい ID、PASSが取得できませんので、ID、PASSを入力して「OK」を押しても認証されません。
 
最初の説明にも書きましたが、.htaccessの 2行目に書く .htpasswdへのパスは、サーバのルートからフルパスで記述をします。それが間違っていないか改めて確認をしてみてください。
特にレンタルサーバの場合は、実際にアクセスできる場所のルートがサーバのルートでない場合がほとんどですので、正しいサーバのルートからのパスを調べましょう。
 
もしくは、.htpasswdファイルのファイル名の付け方を間違っていても同じような不具合になりますので、.htpasswdのファイル名ももう一度確認してみましょう。
 
 

Basic認証をファイル単位・URL単位で指定する方法

 
Basic認証をファイル単位・URL単位で指定する方法については「Basic認証をファイル単位・URL単位で設定する方法の解説」に追加で解説を書きましたので、もう少し詳しく知りたい方は参考にしてみてください。
 
 

Basic認証関連の記事まとめ

 
Basic認証関連の記事もいろいろと書いていますので、あわせて参考にしてみてください。
 
 ロリポップで baserCMSを利用する際の Basic認証の設置には注意しましょう
 WordPressのログイン画面 URLを変更する 管理画面に Basic認証を設定する
 WordPressの管理画面ログインURLの変更方法解説
 WordPressの管理画面ログインURLファイルにBasic認証を設定する方法解説
 Basic認証をファイル単位・URL単位で設定する方法の解説
 ロリポップでWordPress+Basic認証で不具合発生!回避方法解説
 Basic認証の.htaccess、.htpasswd生成ツールと解説
 WP Basic AuthなどWordPressにBasic認証を設定するプラグインのまとめ
 WordPressのカテゴリ単位・フォルダ単位でBasic認証を設定する方法
 WordPressで特定のURL、ページ、ファイル単位でBasic認証を設定する方法

 - WordPress

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

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

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

WordPressで使うおススメ FTP、テキストエディタ、圧縮解凍ソフト

WordPressサイトを構築、運用するために必要となるFTPソフト、テキストエディタ、圧縮解凍ソフトのオススメソフトを紹介。

WordPress初心者向け講座・詳細解説データベースとは何か?

データベースとは何か?を言葉の意味の説明なども含めエクセルと比較しながら説明しています。

Custom Post Type UIでカスタム投稿を設定・バージョン1.4対応解説

カスタム投稿をプラグインCustom Post Type UIを使って設定する方法を解説。バージョンアップにより設定する項目も増え、より柔軟な設定ができます。

MW WP Formの使い方詳細解説・WordPressの確認画面付フォーム

WordPressの確認画面付お問い合わせフォームプラグイン「MW WP Form」の詳細解説をしています。

Advanced Custom Fieldsのカスタムフィールドの登録上限が max_input_varsに影響する問題の対処方法

Advanced custom Fieldsには登録できるフィールド数に上限があります。php.iniのmax_input_varsによる制限ですが、フィールドグループを分割することで解決できます。

WordPress csvインポート、エクスポートのプラグイン

WordPressから csvファイルをエクスポート、インポートする方法を紹介しています。

Advanced custom Fieldsのフィールドグループを簡単に複製する方法

Advanced custom Fieldsのフィールドグループの複製の方法の解説。XMLのExport、インポートする機能を利用して複製します。

Contact Form 7使い方詳細解説・WordPressメールフォーム

WordPressの標準お問い合わせメールフォームである Contact Form 7の詳細な使い方の解説です。

Advanced Custom Fields管理画面の全項目完全解説・カスタムフィールド決定版!

カスタムフィールドを設定する最高のプラグイン。設定できる項目を全て網羅して解説。投稿の項目だけではなく、カテゴリやユーザ情報の項目を増やすことにも使えます。

WordPressの Google XML Sitemapsで WebMaster Tools用の sitemap.xmlを生成

WordPressの Google XML Sitemapsで WebMaster Tools用の sitemap.xmlを生成する方法を説明しています。