WordPressセキュリティガイド
WordPressの不正アクセス対策
WordPressへの攻撃は、1つの対策で止まるものではありません。入口ごとに守り、記録を確認し、必要なら接続元を遮断する。この順番で考えると、サイトを止めずに守れます。
このページは2026年11月11日時点の情報です。NagiShieldの料金・対応環境は変更される場合があります。
まず押さえる3つの原則
- 更新する:WordPress本体・テーマ・プラグインを最新に保ち、更新前のバックアップを取ります。
- 入口ごとに守る:ログイン、管理画面、問い合わせフォーム、REST API。それぞれに合った制限をかけます。
- 記録してから止める:いきなり遮断せず、まず検知のみで通常の操作が通ることを確認します。
主な攻撃と、対策の層
攻撃は手口ごとに入口が違います。同じ対策を増やすより、どの層で止めるかを決めておくほうが運用しやすくなります。
| 攻撃 | 何が起きるか | 対策の例 |
|---|---|---|
| ブルートフォース(総当たり) | ログイン失敗を大量に繰り返し、パスワードを破ろうとする | 失敗回数の制限、二要素認証、接続元IPの遮断 |
| 不正ファイル探索 | adminer.php など公開していないPHPファイルを探し、侵入の足がかりを狙う | 探索パターンの検知、不審な接続元の遮断、サーバー側の制限 |
| SQLインジェクション | 入力欄からデータベースを操作し、情報を抜き出そうとする | プリペアドステートメント、入力の構文検査、WAF |
| フォームスパム・連投 | 問い合わせフォームへ大量送信し、営業や迷惑投稿を流し込む | 送信回数の制限、ハニーポット、外部URLや言語の条件 |
| ユーザー名の列挙 | REST APIなどから投稿者名を集め、ログイン攻撃の材料にする | 列挙の制限、表示名の見直し、ログイン試行の制限 |
IP自動遮断とは
IP自動遮断は、不審な行動を接続元IPごとに記録し、一定時間の累計がしきい値に達したら、そのIPからのアクセスを自動で拒否する仕組みです。1回の失敗で即座に遮断するのではなく、回数と手口を足し算で評価します。
NagiShieldの標準設定では、1時間の累計10点で自動拒否、拒否期間は14日です。しきい値は5〜50点、拒否期間は1〜365日の範囲で変更できます。拒否の理由・累計スコア・解除予定は管理画面に残ります。
限界もあります。共有IPでは別の利用者を巻き込むことがあり、CDNやプロキシの設定によっては接続元の判定が変わります。WordPressが起動する前の通信や、サーバー上で直接実行されるファイルは保護範囲外です。
NagiShieldでできること
- 不審なファイル探索、SQLインジェクション、ログイン失敗、フォーム連投を入口ごとに検知します。
- 種類の違う検知を、同じ接続元IPの1時間スコアに合算します。
- 拒否理由・累計スコア・解除予定を、日本語・英語の管理画面で確認できます。
- 検知のみモード、信頼するIP、常時拒否、個別解除、緊急解除を用意しています。
マルウェア検査、WAFの署名更新、二要素認証は搭載していません。これらが必要な場合は、別のプラグインやサーバー側の機能と組み合わせてください。
対策を始める手順
- WordPress本体・テーマ・プラグインの更新状況と、バックアップの有無を確認します。
- ログインの回数制限やフォームの送信制限など、入口ごとの対策を設定します。
- IP自動遮断を検知のみで動かし、ログイン・問い合わせ・注文が通ることを確認します。
- 問題がなければ保護を有効にし、履歴を定期的に確認します。
よくある質問
WordPressの不正アクセス対策は、何から始めればよいですか?
まずWordPress本体・テーマ・プラグインを最新に保ち、バックアップを取ります。そのうえでログインの回数制限やIP自動遮断など、入口ごとの対策を足していきます。1つのプラグインだけですべてを防ぐことはできません。
IP自動遮断だけで十分ですか?
十分ではありません。IP自動遮断は、繰り返す不審な行動をまとめて止める対策です。パスワードの使い回し、プラグインの脆弱性、マルウェアなどは別の対策が必要です。更新、バックアップ、サーバーやCDNのWAFと併用してください。
共有IPやCDNを使っていると、誤って遮断されませんか?
誤遮断の可能性はあります。共有IPでは、同じ接続元を使う別の利用者の行動が累計に加わることがあります。CDNやプロキシを使っている場合は、接続元IPの取得方法を設定し、検知のみモードで通常の操作を確認してから保護を有効にしてください。
SQLインジェクション対策はプラグインだけで足りますか?
足りません。根本的な対策は、アプリケーション側で適切なプリペアドステートメントを使うことです。プラグインの構文検査は、明白な攻撃パターンを入口で止める補助的な対策と考えてください。
攻撃を受けた形跡があったときは、何を確認しますか?
アクセスログとプラグインの履歴で、日時・接続元IP・パス・拒否理由を確認します。不審なファイルやユーザーが作られていないか、 WordPress本体とプラグインの更新状況も確認してください。あわせてバックアップの取得日時を確認し、必要ならサーバー管理者や専門家へ相談します。
NagiShieldを試す
NagiShieldは、WordPress 6.5以降・PHP 7.4以降で使えるIP自動遮断プラグインです。500円(税込・買い切り)で、購入者本人が所有するサイトに導入できます。