Menu
カテゴリー

【WordPress】セキュリティ強化で難攻不落のWebサイトへ

悩む人

WordPressでブログを開設した(したい)んだけど、ハッカーから狙われやすいって聞いて心配です。安心してブログ運営を行えるようにセキュリティ強化(対策)する方法があれば教えてほしいです。

こういった悩みにお答えします。

本記事で解決できること

  • WordPressを最新の状態に保つ必要性
  • テーマを最新の状態に保つ必要性
  • プラグインを最新の状態に保つ必要性
  • WordPressが求める要件を満たす環境を用意する必要性
  • ログインページURLの変更方法
  • Basic認証の設定方法
  • ログインページにreCAPTCHA v3を設置する方法
  • ログイン認証をユーザー名ではなくメールアドレスのみ許可する方法
  • ログインページに二段階認証を設定する方法
  • 万が一(ハッキングされた時)に備えてバックアップを取っておく ※簡単に(素早く)復元できるプラグインが◎

是非、最後までご覧ください。

本記事の内容

WordPressのセキュリティ対策【まずはここから】

  • WordPressを最新の状態に保つ
  • テーマを最新の状態に保つ
  • プラグインを最新の状態に保つ
  • WordPressが求める要件を満たす環境を用意する

WordPressを最新の状態に保つ

WordPressは、不具合の修正やセキュリティ面で問題が発生した場合にはアップデートされるようになっています。

にも関わらずアップデートせずに放置しているのはサイトを危険に晒しているようなものです。

放置せずに常に最新の状態を保つようにしましょう。

テーマを最新の状態に保つ

テーマを最新の状態に保つ必要性については「WordPressを最新の状態に保つ」と同様です。

また、僕はテーマに「SWELL」を使用しており、公式サイトに動作必須環境が記載されています。

これからテーマの導入をする(考えている)方は必ず要件を満たす環境を用意してからテーマを導入しましょう。

プラグインを最新の状態に保つ

プラグインを最新の状態に保つ必要性については「WordPressを最新の状態に保つ」と同様です。

インストール時に確認しておく項目

  • インストール数
  • 最終更新日
  • 使用中のワードプレスでテストされてるか(WordPressのバージョンに対応しているか)

「詳細情報」にはもっと細かい項目が記載されています。

「詳細情報」からだと下記の2項目まで確認することができます。

  • WordPressの必須バージョン
  • 必須PHPバージョン

また、テーマによって、相性が良いプラグインと悪いプラグインがあると思いますので合わせて確認しておくと良いと思います。

WordPressが求める要件を満たす環境を用意する

日本語
必須要件 Requirements To run WordPress we recommend your host supports: That’s really it. We recommend Apache or Nginx […]

WordPressが求める要件の中でPHPバージョン7.4以上となっていますが、2022年11月28日にサポートは終了しています。

≫ PHP:サポートされているバージョン

サポートが終了しているということはセキュリティ上の脆弱性や、最新バージョンのPHPで修正されているバグに晒される可能性があります。

そのため僕は2023年11月26日までサポートされているPHP8.0.25を使用しています。

WordPressのセキュリティを難攻不落にするまでの手順5つ

読者の設定順

  • 手順①:セキュリティ系プラグイン「Wordfence Security」を導入して、ログインページにreCAPTCHA v3を設置
  • 手順②:ログインページに二段階認証設定 ※手順①で設定が完了します。
  • 手順③:ログインページのURL変更
  • 手順④:Basic認証設定
  • 手順⑤:ログイン認証をユーザー名ではなくメールアドレスのみ許可する。

攻撃者の関門順

  • 第一関門:ログインページのURLを突き止める。
  • 第二関門:Basic認証を破る。
  • 第三関門:reCAPTCHA v3の監視をかい潜る。
  • 第四関門:ログイン認証を攻略する。
  • 第五関門:二段階認証を突破する。

手順①:セキュリティ系プラグイン「Wordfence Security」を導入して、ログインページにreCAPTCHA v3を設置

「Wordfence Security」というセキュリティ系プラグインを導入してreCAPTCHA v3を設置します。

下記画像の赤枠がreCAPTCHA v3です。

「Wordfence Security」では、reCAPTCHA v3以外にも様々なセキュリティ設定が行えます。

「Wordfence Security」で行えるセキュリティ設定

  • 「ファイアウォール」の設定
  • 「reCAPTCHA v3」の設定
  • 「二段階認証」の設定
  • 「ブルートフォース保護」の設定

「ファイアウォール」とは

外部ネットワークからの攻撃や不正なアクセスから自分たちのネットワークやコンピュータを守るための「防火壁」です。

「reCAPTCHA v3」とは

「チェックを入れたり(私はロボットではありません)、画像による診断を行わず」にロボットか人間かを自動で判断してくれます。

「ブルートフォースアタック(総当たり攻撃)」とは

ハッカーがクローラーを使いログインページで手あたり次第にユーザー名またはメールアドレスやパスワードを入力してログインを試みることです。

参考記事:「Wordfence Security」の設定方法【SWELL】

あわせて読みたい
 「Wordfence Security」の設定方法【SWELL】 SWELL開発者がおすすめセキュリティ系プラグインに挙げている「Wordfence Security」の設定方法を知りたいですか?本記事では、Wordfence Securityのインストールから「無償ライセンス」のインストール方法、Wordfenceの自動更新を有効化する方法、WORDFENCEファイアウォールを最適化する方法、Login Security(2段階認証、reCAPTCHA)の設定方法、メール通知の設定方法、ブルートフォース保護の設定方法まで解説しています。「Wordfence Security」の設定方法を知りたい方は是非ご覧ください。
あわせて読みたい
「reCAPTCHA」の導入方法を詳しく解説【最新のv3に対応】 「reCAPTCHA」に関する情報を知りたいですか?本記事では、最新の「reCAPTCHA v3」や「reCAPTCHA v2」の導入方法および設定から「reCAPTCHAの発動場面の紹介」や「reCAPTCHAとは?」まで解説しています。「reCAPTCHA」の導入方法を知りたい方は非是ご覧ください。

手順②:二段階認証設定

手順①で既に設定済みだと思います。

詳しくは、「Wordfence Security」の設定方法【SWELL】で解説していますが、スマホに表示される6桁の数字を入力することでようやく管理画面に入ることができます。

この6桁の数字は30秒ごとに変わっていく仕組みとなっており突破するのは相当難儀なはずです。

手順③:ログインページのURL変更

まずは下記をご覧ください。

  • ググれば誰でも分かるURL:サイトドメイン/wp-login.php
  • ググっても(自分しか)分からないURL:サイトドメイン/wordpress-login.php

下記画像は「ググっても(自分しか)分からないURL」でログインページにアクセスしています。

ググっても(自分しか)分からないURLにすることでログインページにすら辿り着けない可能性もありますのでこの時点で外部からの攻撃を防ぐことができます。

参考記事:WordPressのログインURLをプラグインなしで変更する方法

あわせて読みたい
WordPressのログインURLをプラグインなしで変更する方法 WordPressのログインURLをプラグインなしで変更する方法を知りたいですか?本記事では、ログインURLの変更を「.htaccess」からと「functions.php」で行う方法の解説やログインURLの変更に必要なキーワードを生成するツールの紹介までしています。WordPressのログインURLをプラグインなしで変更したい方は是非ご覧ください。

手順④:Basic認証設定

下記画像がBasic認証が表示されている場面になります。

「ググっても(自分しか)分からないURL」を突き止められたとしてもBasic認証を破らなければログインページへは辿り着けません。

参考記事:WordPressのログイン画面にプラグインなしでBasic認証を設定

あわせて読みたい
WordPressのログイン画面にプラグインなしでBasic認証を設定 WordPress(以下、WP)のログイン画面にプラグインなしでBasic認証を設定する方法を知りたいですか?本記事では、Basic認証の設定に必要となる「.htpasswd」ファイルの作成・編集や「.htaccess」ファイルの編集から、設定や認証に必要な「ユーザー名」や「パスワード」、「ハッシュ化パスワード」を生成するツールの紹介・使い方、また、WPのログイン画面にエックスサーバーでBasic認証の設定をする方法まで解説しています。WPのログイン画面にプラグインなしでBasic認証を設定したい方は是非ご覧ください。

手順⑤:ログイン認証をユーザー名ではなくメールアドレスのみ許可する。

ここでは合わせて下記の設定も行います。

  • ログイン認証をメールアドレスのみ許可したメールアドレスの変更 ※分かりづらい見出しですみません🙇
  • エラーメッセージの変更

何はともあれ、まずはログイン認証をメールアドレスのみ通す作業を行っていきます。

下記のコードを子テーマのfunctions.phpに追加します。


# ログイン認証をメールアドレスだけ通す。
function email_login($user, $username, $password) {
  $user = get_user_by('email',$username);
  if(!empty($user->user_login)) {
    $username = $user->user_login;
  } else {
    $username = '';
  }
  return wp_authenticate_username_password(null, $username, $password);
}
add_filter('authenticate', 'email_login', 20, 3);

# ログインページのエラーメッセージを変更。
function hide_login_error_message(){
return 'ユーザー名またはメールアドレスもしくはパスワードが正しくありません。';
}
add_filter('login_errors', 'hide_login_error_message');

これでログイン認証をメールアドレスのみ通すようになりました。

あわせて読みたい
【SWELL】子テーマの使い方と役割を解説【親テーマにも触れる】 SWELLで用意されている子テーマの使い方について知りたいですか?本記事では、親テーマとの違い、子テーマを使うメリットや使い方(カスタマイズ方法)、注意点について解説しています。SWELLで用意されている子テーマの使い方について知りたい方は是非ご覧ください。

なぜメールアドレスのみを通すようにしたのか

ユーザー名はバレやすく、何も行っていなければ下記の5パターンから知られてしまう可能性があります。

  • パターン①:サイトドメイン/?author=1
  • パターン②:サイトドメイン/wp-json/wp/v2/users or サイトドメイン/?rest_route=/wp/v2/users
  • パターン③:サイトドメイン/wp-json/oembed/1.0/embed?url=ブログカード等が埋め込まれている記事のURL
  • パターン④:サイトドメイン/feed or サイトドメイン//?feed=rss
  • パターン⑤:記事のコメント欄 ※こちらの記事(≫ WordPress コメント欄のユーザー名を隠す)を参照。

パターン①〜④に関しては、アクセスしたページのどこからにユーザー名が表示されているはずで、パターン⑤に関しては、参考記事を用意しました。

このようにユーザー名はバレやすいので、ログイン認証をメールアドレスのみ通すようにしました。

そして、ここからさらに手を加えていきます。

ログイン認証をメールアドレスのみ許可したメールアドレスを変更する。

下記記事を参考にすることでワードプレスの管理画面以外からでもメールアドレスを変更することができます。

あわせて読みたい
【WordPress】SSL化失敗やログインできない場合の対処法 WordPressでSSL化失敗やログインできない場合の対処法を知りたいですか?本記事では、「レンタルサーバー側でSSL設定する前にWordPress側をhttpsにして」「パスワードを忘れて」「ユーザー名やメールアドレスを忘れて」管理画面にログインできない場合の対処法から、おまけで「管理者メールアドレスの変更方法」まで解説しています。WordPressでSSL化失敗やログインできない場合の対処法を知りたい方は是非ご覧ください。

例えばgmailではユーザー名には文字数6〜30文字以内で、英字(小文字)と数字、ピリオド(.)しか使えませんが、これを利用してrh.40v9zfi2x79sks.d6j6hj1k2wqk@gmail.comのように実在しないメールアドレスを作成することでセキュリティ強化が期待できます。

補足

管理者メールアドレス:WordPress側からの送り先

場所:管理画面メニューの「設定」 > 「一般」内

メール(必須):ログイン用のメールアドレス

場所:管理画面メニューの「ユーザー」 > 「プロフィール」内

以上より、管理者メールアドレスは変更しておりませんので、WordPressからのメールが届かなくなることはありません。

エラーメッセージの変更

下記のコードを子テーマのfunctions.phpに追加します。


# ログインページのエラーメッセージを変更。
function hide_login_error_message(){
return 'ユーザー名またはメールアドレスもしくはパスワードが正しくありません。';
}
add_filter('login_errors', 'hide_login_error_message');

すると「ユーザー名またはメールアドレスもしくはパスワードが正しくありません。」と表示されるようになります。

このように「ログイン認証をメールアドレスのみ通す」「エラーメッセージを変更して正解・不正解を特定されないようにする」ことで、ログインページの突破が難儀なはずです。

管理画面に入る。

これからの段階を全て突破しなければ管理画面に入ることはできないため、個人的には難攻不落だと思っています(自画自賛ですが、、、笑)。

ただ、運営者も管理画面に入る手間は増えますが、被害に遭った時(後)の「精神的ショックやその後の対応」を考えるとセキュリティ強化をしすぎて悪いことはないと思いますし、Clipyというツールを使うことでストレスなく管理画面に入ることもできます。

最後に僕のClipyを使ったログイン方法を紹介して終わりにします。

Clipyを使ったログイン方法

スニペット作成手順

  • 手順①:フォルダを作成 ※ 例)hrdyuic.com
  • 手順②:スニペット名前を決める。 ※ 例)手順①:ログイン画面
  • 手順③:スニペットを入力 ※ 例)hrdyuic.com/wp-login.php

上記の手順①〜③を繰り返して、下記画像の赤枠内を用意しています。

後は順にペーストしていくだけで管理画面に入ることができます。 ※2FA Code(二段階認証のこと)のみ6桁の数字の入力が必要です。

【難攻不落とは言え油断は禁物】万が一(ハッキングされた時)に備えてバックアップを取っておく

バックアップ&復元ともに簡単に(素早く)行えるプラグインが◎

該当するプラグインを下記に貼っておきます。

参考記事:バックアッププラグイン「UpdraftPlus」の使い方と復元方法

あわせて読みたい
バックアッププラグイン「UpdraftPlus」の使い方と復元方法 バックアッププラグイン「UpdraftPlus」の使い方と復元方法を知りたいですか?本記事では、UpdraftPlus本体へのバックアップから復元方法はもちろん、リモートストレージやPCへのバックアップから復元方法まで解説しています。バックアッププラグイン「UpdraftPlus」の使い方と復元方法を知りたい方は是非ご覧ください。

参考記事:All-in-One WP Migrationの使い方と容量を上げる方法

あわせて読みたい
All-in-One WP Migrationの使い方と容量を上げる方法 「All-in-One WP Migration」の使い方と容量を上げる方法を知りたいですか?本記事では、移行元のサイトをエクスポートし移行先のサイトへとインポートする方法から「エックスサーバー」「Local(旧Local by Flywheel)」「MAMP」の容量を上げる方法、All-in-One WP Migrationを使う際の注意点まで解説しています。「All-in-One WP Migration」の使い方と容量を上げる方法を知りたい方は是非ご覧ください。

今回は以上です。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
本記事の内容