2026年10月、WordPressのまわりで大きな出来事が3つ続きました。PHPの緊急の脆弱性、SEOプラグイン「Rank Math PRO」の配布ファイルへの不正なコードの混入、バックアッププラグイン「UpdraftPlus」の開発元への不正アクセスです。

PHPの件は、更新すれば防げました。Rank Math PROの件は、正規の更新そのものに不正なコードが入っていたので、更新したサイトに届きました。UpdraftPlusの件は、盗まれた接続キーで、遠隔管理につないでいたサイトにプラグインを入れられました。セキュリティ対策には、入られにくくする対策と、入られても元に戻せる備えの両方がいります。

WordPressそのものは、きちんと対策すれば安全に使えるCMSです。初心者でもできる対策を15個、役割ごとにまとめました。

WordPressテーマ「ISSUE」

洗練された採用サイトが誰でも簡単に作成できる。

ISSUE

更新で穴をふさぐ

1. WordPress本体を最新にする

WordPressは、見つかった脆弱性を直すための更新をくり返しています。古いバージョンのままだと、直っていない穴が残ります。

小さな更新(7.1.2から7.1.3など)は、初めから自動で入る設定になっています。大きな更新(7.1から7.2など)は、テーマやプラグインの対応を確かめ、バックアップを取ってから行います。ベータ版は試すためのものなので、本番のサイトには入れません。

2. プラグイン・テーマを最新にする

脆弱性は、プラグインやテーマからも見つかります。本体と同じように、こまめに更新します。管理画面の「プラグイン」で「自動更新を有効化」を押しておけば、更新のたびに作業する手間はなくなります。

3. 使っていない・更新が止まったプラグインは削除する

使っていないプラグインは、「無効化」ではなく「削除」まで行います。無効化しただけでは、プラグインのファイルがサーバーに残ります。そのファイルに脆弱性があると、無効のままでも狙われることがあります。

2年以上更新されていないプラグインも、似た機能で更新が続いているものに乗り換えます。WordPress.orgのプラグインのページに「最終更新」の日付と、どのバージョンのWordPressまでテスト済みかが載っているので、入れる前に確かめます。

4. PHPを修正版・推奨バージョンにする

WordPressを動かしているPHPにも、脆弱性が見つかります。2026年10月には、ログインしていない人がサーバーの上でプログラムを動かせてしまう脆弱性が見つかり、修正版が出ました。修正版が出たのは8.2系以降だけで、8.1系以前には出ていません。

今のPHPのバージョンは、管理画面の「ツール」→「サイトヘルス」→「情報」タブの「サーバー」で確かめられます。

サイトヘルスに表示されるPHPのバージョン

WordPressが推奨するのはPHP 8.3以上です。PHPのバージョンは、レンタルサーバーの管理画面から切り替えられます。今回の脆弱性と、確かめ方・切り替え方は、こちらの記事で紹介しています。

ログインを守る

管理者としてログインされると、何でもできてしまいます。

5. パスワードは長く、使い回さない

パスワードは、覚えやすさより長さを優先します。WordPressのユーザー編集画面にある「新しいパスワードを生成」を押すと、24文字のランダムなパスワードが作られます。覚えるのではなく、パスワード管理アプリやブラウザに保存して使います。

ほかのサービスと同じパスワードは使いません。どこか1つから漏れると、同じパスワードを使っているサイトに次々とログインされるためです。自分のメールアドレスが過去に漏れていないかは、こちらで確かめられます。

6. 公開されているログインIDを隠す

WordPressは初期設定のままだと、ログインに使うユーザー名を外から調べられます。「/?author=1」のようなURLを開くと、投稿者のページのURLにユーザー名が出ます。REST APIのユーザー一覧(/wp-json/wp/v2/users)にも、ユーザー名と同じ文字列が載ります。

ユーザー名が分かると、あとはパスワードを当てるだけになります。隠すときは、この2つの入口を両方ふさぎます。

7. ログインの試行回数を制限する

たとえば「3回パスワードを間違えたら、1時間ログインできないようにする」と決めておきます。プログラムで何万通りものパスワードを試す攻撃(ブルートフォース攻撃)を、途中で止められます。

プラグイン「Limit Login Attempts Reloaded」で設定できます。

8. ログインURLを変える

WordPressのログイン画面は、どのサイトでも同じURLです。

https://example.com/wp-login.php
https://example.com/wp-admin/

「wp-admin」を開いても、ログインしていなければログイン画面に移動します。攻撃する側は、URLを探す手間なくログインを試せます。ログインURLを自分だけが知っている文字列に変えれば、こうしたアクセスの多くを入口で止められます。ただしプラグインによっては、「wp-admin」を開くと新しいURLに転送してしまいます。CloudSecure WP Securityでは、「リダイレクトしない」にチェックを入れるまで転送されました。

プラグインで変える方法と、プラグインを使わずに変える方法があります。

9. 2段階認証・パスキーを使う

パスワードに加えて、スマートフォンの認証アプリやメールに届くコードを入れないとログインできないようにします。パスワードが漏れても、それだけではログインされません。

ログインのたびに一手間増えますが、パスワードが漏れても、それだけではログインされません。プラグイン「Two-Factor」で設定できます。

指紋や顔でログインするパスキーなら、パスワードそのものを入力せずに済みます。

10. ログイン履歴を残し、通知を受け取る

プラグイン「User Login History」を入れると、ログインした日時、ユーザー名、IPアドレス、ブラウザなどが記録されます。覚えのないログインに気づいたり、何かあったときに調べたりするのに役立ちます。

ログインのたびにメールで知らせるなら、「Kaya Login Notification」があります。どちらかを入れておきます。

11. ユーザーの権限は必要な分だけにする

外部のライターや制作会社にアカウントを渡すときは、管理者ではなく、作業に必要な権限グループを選びます。記事を書くだけなら「投稿者」や「寄稿者」で足ります。

乗っ取られたアカウントが管理者でなければ、できることも限られます。使わなくなったアカウントは削除します。

外からの入口を減らす

12. XML-RPCとアプリケーションパスワードを見直す

WordPressには、ログイン画面のほかにも、外部のサービスやアプリから操作するための入口があります。古くからある「XML-RPC」と、REST APIで使う「アプリケーションパスワード」です。

XML-RPCは、スマートフォンのアプリや外部サービスから投稿していなければ、止めても困ることはほとんどありません。アプリケーションパスワードは、使い終わったら取り消し、誰に何のために発行したかが分かる名前を付けておきます。

13. WAFをオンにする

WAF(Webアプリケーションファイアウォール)は、SQLインジェクションのようなよくある攻撃のアクセスを見つけて遮断する仕組みです。エックスサーバーやさくらのレンタルサーバなど、管理画面からWAFをオンにできるサーバーがあります。使っているサーバーの設定を確かめます。

WordPressのプラグインで足すこともできます。下の画面は、プラグイン「CloudSecure WP Security」のWAFが、検証用に送った攻撃のアクセスを遮断した記録です。

WAFが遮断したアクセスの記録

WAFは、普通の操作をまちがって遮断することもあります。記事の保存などが急にできなくなったら、WAFの記録を確かめます。

14. 脆弱性のあるプラグインがないか調べる

入れているプラグインやテーマに、すでに知られている脆弱性がないかは、ツールで調べられます。更新を後回しにしているプラグインがあるときほど、一度確かめておきます。

入られても戻せるようにする

15. 自動のバックアップを数日分残す

どれだけ対策しても、乗っ取りを100%防ぐことはできません。2026年10月の「Rank Math PRO」の件では、正規の更新ファイルそのものに不正なコードが入っていました。こまめに更新していたサイトほど、早く巻き込まれています。

こうしたときに頼れるのは、問題が起きる前のバックアップです。自動でバックアップを取り、数日分を残しておけば、問題の前の日に戻せます。手作業で毎日取る必要はありません。

まず、使っているレンタルサーバーの自動バックアップを確かめます。たとえばエックスサーバーは、全プランで1日1回、ファイルとデータベースを自動でコピーし、過去14日分を無料で残しています。

参考:自動バックアップ(エックスサーバー)

バックアップするのは、WordPressのファイル一式(テーマ、プラグイン、画像など)とデータベースの2つです。管理画面の「ツール」→「エクスポート」で書き出せるXMLファイルには、画像そのものやサイトの設定は入らないため、これだけでは元に戻せません。

サーバーに自動バックアップがない場合や、サーバーとは別の場所にも残したい場合は、無料のプラグイン「UpdraftPlus」を使います。一度設定すれば、決まった時間に自動でバックアップを取り、Google Driveなどに残せます。実際に壊して戻すところまで試した手順は、こちらの記事で紹介しています。

乗っ取られたときの症状や、復旧の手順はこちらの記事で紹介しています。

6〜10をまとめて設定できるプラグイン

6〜10の対策(9のパスキーを除く)は、それぞれ別のプラグインを入れなくても、セキュリティプラグイン1つでまとめて設定できます。たとえば、エックスサーバーが提供している無料の「CloudSecure WP Security」には、ログインIDを隠す、ログインの試行回数の制限、ログインURLの変更、2段階認証、ログイン履歴とログイン通知がそろっています。13のWAFもあります。

ただし、ログインIDを隠す機能が守るのは「?author=数字」のアクセスだけです。TCDの検証では、REST APIからはユーザー名が見えたままでした。設定方法と検証の結果は、こちらの記事で紹介しています。

同じ役割のプラグインを重ねて入れると、ログインできなくなることがあります。どれか1つに絞って使います。

まとめ

15の対策を、すべてやる必要はありません。多くは一度設定すれば終わるものです。最低限やっておきたいのは、次の5つです。

最低限の対策 やること
更新を自動にする(1・2) 本体の小さな更新は初めから自動。プラグインも自動更新をオンにする
使わないプラグインを消す(3) 今入っているものを一度見直す
PHPを修正版にする(4) サイトヘルスでPHPのバージョンを見る。8.1系以前なら、レンタルサーバーの管理画面で8.3か8.4に切り替える
ログインを固める(5・9) 長いパスワードに変え、管理者だけでも2段階認証をオンにする
戻せるようにしておく(15) サーバーの自動バックアップがあるかを確かめる。なければUpdraftPlusで自動にする

残りの対策は、サイトの状況に合わせて足します。複数の人でサイトを運営しているなら11の権限、外部のサービスとつないでいるなら12、というように、自分のサイトに当てはまるものから選びます。6〜10は、セキュリティプラグインを1つ入れれば、まとめて済ませられます。

世界最高品質のデザインの
WordPressテーマ集
WordPressテーマ「ISSUE」
WordPressテーマ「ISSUE」
人材不足を解決する求人採用サイトを。
WordPressテーマ「SEEED」
WordPressテーマ「SEEED」
Webサービスを販売するLP型テーマ。
WordPressテーマ「GENESIS」
WordPressテーマ「GENESIS」
スタイリッシュな企業サイトの決定版。
WordPressテーマ「SOLARIS」
WordPressテーマ「SOLARIS」
一流の企業のための一流の企業サイトを。