PR

WordPressのセキュリティ対策|PHPバージョン・プラグイン更新・ログイン保護をエンジニアが解説【2026年版】

WordPressでブログやサイトを運営していると、「更新があります」の通知、つい後回しにしていませんか?
PHPのバージョンなんて、サーバーを借りたときのまま…という方も多いと思います。
今回は、WordPressを個人で運営しているエンジニアの目線で、サイト運営で最低限やっておきたいセキュリティ対策を、実際の脆弱性の事例とあわせて解説します。

この記事のポイント
  • WordPressが狙われやすい理由
  • PHPのバージョンはいくつにすべきか(2026年時点)
  • プラグイン・テーマの更新と「使っていないプラグイン」の危険
  • ログイン画面の守り方、WAF、バックアップ、乗っ取られたときの手順

WordPressはなぜ狙われやすいのか

WordPressは、世界のWebサイトの4割前後で使われていると言われています。
攻撃する側から見ると、1つの脆弱性を見つければ、同じプラグインを使っている何十万サイトを一気に狙えるわけです。

実際の攻撃のほとんどは、人間が1サイトずつ狙っているわけではありません。プログラムが世界中のサイトを機械的に巡回して、「このバージョンのこのプラグインを使っているサイト」を探し、見つけたら自動で攻撃してきます。
つまり、「うちみたいな小さいブログは狙われない」は通用しないんです。

パパ
パパ

狙われるのは「サイトの大きさ」じゃなくて「穴があるかどうか」なんだよね。

PHPのバージョンを上げる

WordPressは、PHPというプログラミング言語で動いています。このPHPにもバージョンごとに「サポート期限」があり、期限が切れるとセキュリティの修正が出なくなります。

PHPのバージョンセキュリティサポート期限2026年10月時点
7.4 / 8.0 / 8.1終了済み修正が出ないので要アップデート
8.22026年12月31日もうすぐ終了
8.32027年12月31日セキュリティ修正のみ
8.42028年12月31日通常サポート中
8.52029年12月31日通常サポート中

WordPress公式は、2026年5月の時点でPHP 8.3以上を推奨しています。動くこと自体はPHP 7.4からですが、「動く」と「安全」は別の話です。

アップデートの手順:

  1. まずサイト全体のバックアップを取る
  2. WordPress本体・テーマ・プラグインを最新にしておく
  3. サーバーの管理画面でPHPのバージョンを切り替える(ConoHa WINGやエックスサーバーなどは管理画面から変更できます)
  4. サイトの表示、記事の投稿、問い合わせフォームなどが動くか確認する
  5. WordPressの「ツール」→「サイトヘルス」で、警告が出ていないか確認する

もし表示が崩れたら、元のバージョンに戻して、原因のテーマやプラグインを特定してから再挑戦すればOKです。

パパ
パパ

古いPHPのままだと、WordPressをいくら更新しても土台がスカスカなんだ。年に1回は確認しようね。

プラグイン・テーマ・本体は必ず更新する

実際に起きたこと:2024年11月、400万以上のサイトで使われていたセキュリティ系プラグイン「Really Simple Security」に、深刻度が最高クラス(CVSS 9.8)の脆弱性が見つかりました。2段階認証をオンにしていると、パスワードを知らなくても管理者としてログインできてしまうというものです。
開発元はWordPress側と協力して、公開前に対象サイトへ修正版を強制的に配信しました。セキュリティを強化するためのプラグインが、逆に入口になってしまった皮肉な例です。

なぜ起こるのか:プラグインやテーマは、世界中の開発者が作ったプログラムです。どれだけ有名でも、脆弱性が見つかることはあります。問題は、修正版が出たあとも更新しないで放置することです。脆弱性の情報が公開されると、攻撃プログラムはすぐにそのプラグインを狙い始めます。

対策:

  • WordPress本体・プラグイン・テーマの自動更新をオンにする(プラグイン一覧の「自動更新を有効化」から設定できます)
  • 使っていないプラグインは「停止」ではなく「削除」する(停止中でもファイルはサーバーに残り、攻撃の対象になることがあります)
  • 2年以上更新されていないプラグインは、代わりのものを探す
  • 公式ディレクトリ以外で配られている「有料プラグインの無料版(nulled)」は絶対に使わない(ほぼ確実にマルウェア入りです)
パパ
パパ

「停止してるから大丈夫」はよくある勘違い。使わないなら消しちゃおう。

ログイン画面を守る

WordPressのログイン画面は、URLが決まっている(/wp-login.php や /wp-admin/)ので、世界中から総当たり攻撃が飛んできます。

なぜ破られるのか:

  • ユーザー名が「admin」や、サイトに表示されている名前と同じ
  • パスワードが短い、または他のサービスと使い回している
  • 何回失敗してもロックされない

実はWordPressは、何も対策しないと ?author=1 のようなURLから、ログイン用のユーザー名がわかってしまうことがあります。ユーザー名がわかれば、あとはパスワードを当てるだけです。

対策:

  • ユーザー名は推測されにくいものにし、「ブログ上の表示名」とは別にする
  • パスワードはパスワードマネージャーで作った長いものにする
  • 2段階認証を入れる
  • 「SiteGuard WP Plugin」などで、ログインページのURL変更・画像認証・ログイン失敗時のロックを設定する
  • 使っていなければ、XML-RPC(外部からの投稿用の古い仕組み)を無効にする

私もこのブログでは、SiteGuard WP Pluginでログイン画面のURLを変えて、失敗が続くとロックされるようにしています。

パパ
パパ

ログイン画面の場所を変えるだけでも、機械的な攻撃はかなり減るよ。

WAFとサーバー側の守りを確認する

WAF(Web Application Firewall)は、サイトの手前に立って、よくある攻撃のパターンを止めてくれる門番です。ConoHa WINGやエックスサーバーなど、主要なレンタルサーバーは管理画面からオンにできます。まだなら、今すぐ確認しておきましょう。

ただし、WAFは万能ではありません。プラグインの脆弱性の中には、正常なアクセスに見えるためWAFをすり抜けるものもあります。WAFは保険、更新が本体と考えてください。

ちなみに、WAFが記事の文章を攻撃と勘違いして、保存できなくなることがあります(コードを多く含む記事で起きやすいです)。その場合は、WAFを切りっぱなしにするのではなく、ログで原因を確認して、その項目だけ除外するようにしましょう。

WAFの仕組みや、WAFでは防げない攻撃については、こちらで詳しく解説しています。

▶ SQLインジェクションとは?Webアプリの脆弱性9選を実例でやさしく解説

パパ
パパ

保存できないからってWAFを丸ごとオフ、はやりがち。ピンポイントで除外しようね。

バックアップと、乗っ取られたときの手順

どれだけ対策しても、100%はありません。だからこそ「戻せる状態」にしておくことが大事です。

バックアップのコツ:

  • サーバーの自動バックアップ機能が有効か確認する
  • それとは別に、UpdraftPlusなどのプラグインで、サーバーの外(クラウドストレージなど)にも保存しておく
  • 一度は「本当に復元できるか」を試しておく

もし乗っ取られたら(改ざん・不審なユーザー・スパムページなど):

  1. あわてずに、まずバックアップを取る(証拠と復旧用)
  2. WordPress・サーバー・FTP・データベースのパスワードをすべて変更する
  3. 見覚えのない管理者ユーザーと、アプリケーションパスワードを削除する
  4. 改ざん前のバックアップから復元する
  5. 本体・テーマ・プラグインを最新にし、使っていないものを削除する
  6. Search Consoleで「セキュリティの問題」「手動による対策」が出ていないか確認する
パパ
パパ

バックアップは「取ってる」より「戻せる」が大事。一回は練習しておくと安心だよ。

APIや自動投稿を使っている人へ

最近は、AIやスクリプトからWordPressに記事を投稿する人も増えました。私もClaude Codeを使って、記事の下書き投稿を自動化しています。

このとき使う「アプリケーションパスワード」は、そのユーザーの権限でサイトを操作できる鍵です。

  • 管理者ではなく、必要な権限だけの専用ユーザーで発行する
  • 使わなくなったら、ユーザー画面から削除する
  • スクリプトのコードに直接書かず、環境変数などに分ける
  • GitHubなどに上げない

詳しくは、AIとGitHubのセキュリティの記事にまとめています。

▶ 生成AIとGitHubのセキュリティ対策

パパ
パパ

便利な自動化ほど、鍵の管理はしっかりね。

WordPress運営のセキュリティ チェックリスト

今日からできるチェックリスト
  • PHPは8.3以上になっている
  • WordPress本体・テーマ・プラグインの自動更新をオンにした
  • 使っていないプラグイン・テーマを削除した
  • ログインのユーザー名が推測されにくく、表示名とも違う
  • 2段階認証とログイン失敗時のロックを設定した
  • サーバーのWAFがオンになっている
  • バックアップをサーバーの外にも保存し、復元を試した
  • 不要なアプリケーションパスワードを削除した

まとめ

WordPressのセキュリティは、特別な知識がなくても「更新する」「減らす」「戻せるようにする」でかなり固められます。

  • PHPは8.3以上に上げる
  • プラグインは更新し、使わないものは削除する
  • ログイン画面を守り、WAFは保険としてオンにする
  • バックアップは「戻せる」ことまで確認する

個人でできるセキュリティ対策の全体像は、こちらにまとめています。

▶ 個人情報の流出・乗っ取りを防ぐセキュリティ対策まとめ|エンジニアが優先度順に解説

パパ
パパ

サイトは育てるのに時間がかかるけど、壊れるのは一瞬。今日のうちにチェックリストだけでもやってみよう!

コメント

タイトルとURLをコピーしました