プラグインを使わずWordPressログイン画面のセキュリティ対策にhtaccessでBASIC認証を設定してブルートフォースアタックを防御

WordPressの豆知識

こんにちは、クリエイターのSHOJIです。世界中で多発する、WordPressを狙った不正なアクセス「ブルートフォースアタック(パスワードの総当たり攻撃)」。

WordPressは、デフォルト設定のまま何も対策をしていないと不正にログインされやすく、サイトを乗っ取られてしまう可能性があります。

運良くログインされずサイトを乗っ取られなかったとしても、ブルートフォースアタックによってユーザーIDとパスワードを何回もサーバーにリクエストされてしまうので、サーバやデータベースに負荷が掛かってしまい、サイトパフォーマンスに影響を及ぼします。

そこで、今回のWebの豆知識は「プラグインを使わずWordPressログイン画面のセキュリティ対策にhtaccessでBASIC認証を設定してブルートフォースアタックを防御」と題し、この総当たり攻撃への対策についてご紹介してみたいと思います。
 
 BASIC認証が有効な理由
 BASIC認証の設定方法
 最後に
 

BASIC認証が有効な理由

不正ログインを防ぐ対策として「SiteGuard WP Plugin」などのプラグインを活用して、ログイン画面のURL「サイトのURL/wp-login.php」を別のURLに変更する手法が広く紹介されています。

ですが、WordPressのプラグインでURLを変更しているため、攻撃を受ける度にWordPressが機能してしまうことには変わらず、サーバやデータベースに負荷が掛かってしまいます。

さらに、別のログインURLに変更したとしても「サイトのURL/wp-admin」にアクセスされると、結局はログイン画面が表示されてしまうので変更した意味がありません。

そこで、ブルートフォースアタックに対して有効とされるのが「BASIC認証」です。

BASIC認証(ベーシック認証)とは、Webサイトの特定の領域(ページやファイル)にアクセス制限をかけることができる認証方法のひとつです。

ログイン画面にBASIC認証を設定することで、アクセスしたときに認証ダイアログが立ち上がり、ユーザーIDとパスワードの入力を求められます。サーバでアクセスを許可しているユーザIDに一致すると、ログイン画面を表示することができます。

アクセスを許可しているユーザIDに一致しない場合は、WordPressが起動する前の段階でブロックされるため、サーバやデータベースへの負荷が掛かりにくいのです。
 

BASIC認証の設定方法

今回はプラグインを使わずに「.htaccess」と「.htpasswd」を活用して、WordPressログイン画面にBASIC認証を設定する方法をご紹介します。

① htpasswdファイルの作成

まずは、BASIC認証に必要なユーザーIDとパスワードを設定したhtpasswdファイルを作成します。htpasswdファイルに記載される情報は、ユーザーIDとパスワードです。

パスワードは暗号化する必要があるため、暗号化してくれるオンラインツールを利用します。

■オンラインツール参考:
.htaccessファイルを簡単作成「.htaccess Editor」
.htpasswd生成 | ベーシック認証用のパスワードを一発作成
.htaccess による認証用パスワード暗号化ツール.htpasswd file generation

別途「htpasswd.txt」などの名前でファイルを作成し、オンラインツールで生成されたテキストを作成したファイル内にペーストして保存しておきます。

② htpasswdファイルのアップロード

次に、作成したhtpasswdファイルを「wp-login.php」があるディレクトリにアップロードします。アップロードした後、ファイル名を「.htpasswd」へと忘れずに変更します。

③ htaccessファイルへの記載

続いて、htpasswdファイルをアップロードしたディレクトリにある「.htaccess」のバックアップを行った上で、このhtaccessファイルに下記情報を追記します。

プラグインを使わずWordPressログイン画面のセキュリティ対策にhtaccessでBASIC認証を設定してブルートフォースアタックを防御

④動作確認

実際にログイン画面にアクセスしてみて、正常にBASIC認証のダイアログが立ち上がり、設定したユーザーIDとパスワードからアクセス許可されるのか確認します。

ログイン画面にアクセスした際に「500 Internal Server Error」が表示された場合には、htaccessファイルに追記したサーバへの接続パスが間違っている可能性が高いため、再度確認が必要です。
 

最後に

今回は「プラグインを使わずWordPressログイン画面のセキュリティ対策にhtaccessでBASIC認証を設定してブルートフォースアタックを防御」と題してご紹介させていただきました。

ブルートフォースアタックだけではなくセキュリティ対策の点からすると、BASIC認証さえ行っていればOKというわけではありませんが、WordPressは世界で最も利用されているCMSということもあり狙われやすくなっていますので、常にセキュリティ向上を意識しながら、対策強化への第一歩としてBASIC認証を導入してみてください。

Webの豆知識」の関連記事

インフォコネクトに
相談してみませんか?

経営コンサルティングやITサービス活用支援、ホームページ制作などに関するご依頼や、ご質問・ご相談など、なんでもお気軽にお問い合わせください。