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認証を設定することで、ユーザー名・パスワードで認証させる簡易的なアクセス制限が可能ですが、ディレクトリ単位で制限をかけたりすることができます。
設定は簡単で、設定の記述を行う .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とパスワードを暗号化する必要があります。
すると「sampleid:4261Dy9QtAEmY」のようなIDと暗号化されたパスワードが生成されるので、メモ帳などでファイル .htpasswd
を用意して、生成されたIDとパスワードを記入します。
wp-adminに.htpasswdをアップロード
WordPressのディレクトリ「wp-admin」へ、作成した .htpasswd
のファイルをアップロードします。
.htaccessにBasic認証を設定
メモ帳などでファイル .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 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をアップロードして完了。
です。是非この記事を参考に試してみてください。