「WordPressのプラグインに脆弱性があると聴いたけど、自分のサイトは大丈夫?」「脆弱性対策って何をすればいいの?」と不安に感じていませんか?
脆弱性(セキュリティホール)は、WordPressのプラグイン・テーマ・本体のプログラムに潜む「弱点」です。攻撃者はこの弱点を突いてサイトに侵入し、改ざん・情報漏洎・マルウェア感染を引き起こします。脆弱性対策はWordPressサイト運営の基本中の基本です。
この記事では、脆弱性の仕組みから、今日からできる具体的な対策まで、順番にわかりやすく解説します。
ITエンジニアとして20年以上WordPressに携わってきたよこやま良平です。多数のサイト復旧を手がけてきたわたしが、脆弱性対策の要点を初心者でも実践できるよう丁寍に解説します。
- WordPressの脆弱性とは何か・なぜ危険なのか
- 脆弱性を狙った主な攻撃パターン
- プラグイン・テーマ・本体の脆弱性対策
- ログイン保護・ファイアウォールの設定方法
- 脆弱性を自動監視する方法
- 万が一に備えたバックアップ体制の作り方
WordPressの脆弱性とは何か
脆弱性(ぜいじゃくせい)とは、WordPressのプログラムコードに潜む「セキュリティ上の弱点」のことです。開発者が意図していなかった動作を引き起こすバグや設計ミスが原因で発生します。
脆弱性が発見されると、それを悪用した攻撃ツールが瞬くまに世界中に広まります。古いバージョンのプラグインを使い続けているサイトは、その攻撃の格好の標的になります。
- 入力値の検証不足:ユーザーが入力したデータを適切にチェックしないことで、悪意あるコードが実行される
- 権限チェックの不備:管理者以外のユーザーが管理者権限の操作を実行できてしまう
- 古いライブラリの使用:脆弱性が発見された古いライブラリをそのまま使い続けている
- 開発者の放棄:プラグイン・テーマの開発が止まり、発見された脆弱性が修正されない
脆弱性を狙った主な攻撃パターン
WordPressの脆弱性を狙った攻撃には、主に以下のパターンがあります。どのような攻撃が行われるかを知ることが、対策の第一歩です。
SQLインジェクション
入力フォームや検索欄などを通じて、データベースへの不正なSQL命令を埋め込む攻撃です。成功すると、データベース内のすべての情報(ユーザー情報・パスワード・記事データ)が漏洎・改ざんされる危険があります。

XSS(クロスサイトスクリプティング)
悪意あるJavaScriptコードをWebページに埋め込む攻撃です。サイトを訪問したユーザーのブラウザでそのコードが実行され、クッキーの盗用・フィッシングサイトへの誤導導・マルウェアの配布などが行われます。コメントフォームや問い合わせフォームを狙った攻撃が多く見られます。
CSRF(クロスサイトリクエストフォージェリ)
ログイン中のWordPress管理者を誘導して、意図しない操作(設定変更・ユーザー追加・投稿削除など)を実行させる攻撃です。管理者がログイン状態のまま悪意あるリンクをクリックするだけで被害を受けます。
ファイルインクルージョン・リモートコード実行
プラグインやテーマの脆弱性を利用して、サーバー上で任意のコード(PHPなど)を実行させる攻撃です。バックドア(隠し侵入口)の設置・マルウェアの配置・サーバーの完全乗っ取りにつながります。
- サイトが改ざんされ、スパムページや悪意あるコンテンツが表示される
- 訪問者のデバイスにマルウェアが配布される
- 顧客情報・個人情報が漏洎する
- Googleのブラックリストに登録され、検索から排除される
- サイトが別のサイトへのリダイレクトに使われる
- スパムメールの送信踏み台にされる
WordPress本体・プラグイン・テーマを常に最新版にする
脆弱性対策で最も重要かつ効果的なのが、WordPress本体・プラグイン・テーマを常に最新版に保つことです。脆弱性が発見されると、開発者は修正したアップデートをリリースします。古いバージョンを使い続けることは、鍵のかかっていない扇を放置するのと同じです。
WordPress本体のアップデート
- 管理画面 →「ダッシュボード」→「更新」を開く
- 「WordPressX.X.Xへ更新」ボタンが表示されていればクリックする
- 更新完了後、サイトが正常に動作しているか確認する

プラグインのアップデート
- 管理画面 →「ダッシュボード」→「更新」→「プラグイン」タブを開く
- 更新可能なプラグインに「すべて選択」でチェックを入れる
- 「プラグインを更新」をクリックする
- 更新完了後、サイトの動作を確認する

使っていないプラグイン・テーマを削除する
「無効化しているから大丈夫」と思いがちですが、無効化しているだけではファイルがサーバーに残っており、脆弱性が放置されています。使っていないプラグイン・テーマは「削除」してください。
- 現在使っていない(無効化している)プラグイン・テーマ
- 最終更新から2年以上経過しているプラグイン
- WordPress.orgから削除されたプラグイン(公式ディレクトリから入手できなくなったもの)
- WordPressの現在のバージョンとの互換性が確認されていないプラグイン

脆弱性を自動検出・監視する方法
インストールしているプラグイン・テーマが脆弱性を抱えているかどうかを、手動で常にチェックするのは現実的ではありません。自動で監視してくれるツールを使いましょう。
Patchstackで脆弱性を自動監視する
Patchstackは、インストール済みのプラグイン・テーマ・WordPress本体に既知の脆弱性が見つかった場合に、メールでアラートを送ってくれる無料のセキュリティプラグインです。
- 脆弱性データベースとの自動照合(プラグイン・テーマ・本体)
- 新しい脆弱性が発見されると即時メール通知
- 深刻度(Critical・High・Medium・Low)と修正バージョンがわかる
- 無料版でも1サイトの脆弱性監視が可能
Wordfenceのスキャンでマルウェアも検出する
Wordfenceは、脆弱性の監視に加えてマルウェアのスキャン・ファイルの改ざん検出も行える多機能セキュリティプラグインです。無料版でも基本的なスキャンが使えます。

ログイン保護で不正アクセスを防ぐ
脆弱性対策はアップデートだけではありません。ログイン画面への不正アクセスを防ぐことも同じくらい重要です。
ログインページURLを変更する
WordPressのデフォルトのログインページURL(/wp-login.php・/wp-admin/)は攻撃者に知られています。SiteGuardプラグインを使って変更することで、ブルートフォース攻撃のリスクを大幅に下げられます。
- 「SiteGuard WP Plugin」をインストール・有効化する
- 管理画面 →「SiteGuard」→「ログインページ変更」を開く
- 「ログインページ変更」をオンにする
- 新しいログインページ名(例:login-12345)を設定して「変更を保存」をクリックする
- 新しいログインURL(例:https://あなたのサイト/login-12345)をブックマークする

ログイン失敗回数を制限する
ブルートフォース攻撃(パスワードの総当たり攻撃)を防ぐために、ログインの失敗回数を制限します。SiteGuardやWordfence、Limit Login Attempts Reloadedなどで設定できます。

二段階認証を設定する
パスワードが漏洎しても不正ログインを防ぐ最強の対策が二段階認証(2FA)です。認証アプリ(Google Authenticatorなど)を使ったTOTP方式は、Solid SecurityまたはWordfenceの無料版から設定できます。

管理者アカウントID「admin」を使わない
WordPressのデフォルト管理者ユーザー名「admin」は攻撃者が最初に試すIDです。インストール時に「admin」以外のユーザー名を設定するか、すでに「admin」を使っている場合は別のユーザーを管理者として追加し、「admin」アカウントを削除してください。
- 「ユーザー」→「新規ユーザーを追加」から新しいメールアドレスで管理者ユーザーを作成する
- 新しいユーザーでログインし直す
- 「ユーザー」一覧から「admin」ユーザーを削除する(投稿は新しいユーザーに帰属させる)
ファイアウォールとマルウェアスキャンを導入する
アップデートやログイン保護だけでは防ぎきれない攻撃に対して、ファイアウォール(WAF)とマルウェアスキャンが最後の砂とになります。
Wordfenceでファイアウォールを有効にする
Wordfenceのファイアウォール(WAF)はSQLインジェクション・XSS・ファイルインクルージョンなどの攻撃パターンをリアルタイムでブロックします。無料版でも基本的なファイアウォール機能が使えます。
- 「Wordfence」→「Firewall(ファイアウォール)」を開く
- 「Firewall Status(ファイアウォール状態)」が「Enabled and Protecting(有効・保護中)」になっているか確認する
- 「Optimize the Wordfence Firewall(ファイアウォールを最適化)」をクリックして拡張保護モードに設定する

wp-config.phpとファイルパーミッションを保護する
wp-config.phpはWordPressの最も重要な設定ファイルで、データベースの接続情報が書かれています。このファイルが外部から読み取られると、サイト全体が危険にさらされます。
wp-config.phpへのアクセスを制限する
.htaccessに以下のコードを追加することで、wp-config.phpへの外部からの直接アクセスをブロックできます。
# wp-config.phpへのアクセスを拒否
order allow,deny
deny from all

ファイルパーミッションを正しく設定する
WordPressのファイルとフォルダに適切なパーミッションを設定することで、不正なファイルの書き込みや実行を防げます。
- wp-config.php:400または600(オーナーのみ読み取り)
- .htaccess:644(オーナーが読み書き、グループ・その他は読み取りのみ)
- WordPressファイル全般:644
- WordPressフォルダ全般:755
- wp-content/uploadsフォルダ:755(PHPファイルの実行は.htaccessでブロック)
XMLRPCを適切に設定する
XMLRPC(xmlrpc.php)はWordPressの外部連携機能ですが、ブルートフォース攻撃の標的になりやすい脆弱なエンドポイントでもあります。Jetpackなど一部のプラグインはXMLRPCを必要としますが、使っていない場合は無効化または制限してください。
- SiteGuardの場合:「XMLRPC無効化」または「XMLRPC多重ログイン防止」を選択する
- .htaccessの場合:以下のコードを追加してxmlrpc.phpへのアクセスをブロックする
# XMLRPC無効化
order deny,allow
deny from all
JetpackはXMLRPCを使用しています。XMLRPCを完全に無効化するとJetpackが動作しなくなります。SiteGuardを使っている場合は「XMLRPC無効化」ではなく「XMLRPC多重ログイン防止」を選択してください。
SSLを導入してHTTPS通信を必須にする
SSLは通信を暗号化する技術です。SSL(HTTPS)が設定されていないサイトでは、ログイン情報やフォームの入力内容が平文で送受信され、傍受される可能性があります。現在は多くのレンタルサーバーが無料のSSL証明書を提供しています。
- サイトのURLが「https://」で始まっているか確認する
- ブラウザのアドレスバーに鍵マーク(🔒)が表示されているか確認する
- レンタルサーバーのコントロールパネルから無料SSL(Let’s Encrypt)を有効化する
- WordPressの管理画面「設定」→「一般」でサイトURLとWordPress URLを「https://」に変更する

定期バックアップで万が一に備える
どれだけ対策を施しても、100%安全なWebサイトは存在しません。万が一の侵害に備えて、定期的なバックアップは必須です。バックアップがあれば、感染前の状態に素早く復旧できます。
- 「UpdraftPlus」プラグインをインストール・有効化する
- 「設定」→「UpdraftPlus バックアップ」→「設定」タブを開く
- ファイルのバックアップ頻度を「毎週」に設定する
- データベースのバックアップ頻度を「毎日」に設定する
- バックアップの保存先をGoogle ドライブまたはDropboxに設定する(サーバー外への保存が重要)

脆弱性対策チェックリスト
ここまで紹介した対策をチェックリストにまとめました。一つずつ確認して、対策が漏れていないか確認してください。
- WordPress本体を最新版にアップデートしている
- すべてのプラグインとテーマを最新版にアップデートしている
- 使っていないプラグインとテーマを削除している
- Patchstackで脆弱性の自動監視を設定している
- ログインページURLを変更している
- ログイン失敗回数を制限している
- 二段階認証を設定している
- 管理者ユーザー名に「admin」を使っていない
- Wordfenceのファイアウォールを有効にしている
- wp-config.phpへのアクセスを.htaccessで制限している
- XMLRPCを適切に制限・無効化している
- HTTPS(SSL)が正しく設定されている
- UpdraftPlusなどで定期バックアップを設定している
WordPress脆弱性対策まとめ
WordPress脆弱性対策の基本は「更新・監視・アクセス制限・バックアップ」の4つです。どれか一つが欠けても、攻撃者に狙われる隙が生まれます。
- 更新:WordPress本体・プラグイン・テーマを常に最新に保ち、不要なものは削除する
- 監視:Patchstack・Wordfenceで脆弱性とマルウェアを自動監視する
- アクセス制限:ログインURL変更・失敗回数制限・二段階認証・ファイアウォールで攻撃をブロックする
- バックアップ:万が一の侵害に備えてサーバー外への定期バックアップを設定する
脆弱性対策は一度やれば終わりではありません。毎月のメンテナンスとして、更新確認・スキャン実行・バックアップ確認を習慣にしましょう。
ホームページの乗っ取りが自分で解決できない時は

ホームページの乗っ取り・マルウェア感染・不正アクセスでお困りなら、
クイックレスキューが解決します。
- ホームページが乗っ取られた・改ざんされた
- 管理画面にログインできなくなった
- 変なサイトにリダイレクトされている
- Googleに危険なサイトと表示されている
- 自分で復旧しようとしたが直らない
- WordPressを復旧・修正したい
- 万一復旧できない場合やマルウェア駆除できない場合は全額返金保証で安心
- 90日間再感染保証・動作保証で安心
- 初期費用・調査費用0円で安心
