
XO Securityの設定方法と不具合対処【初心者/SWELL向け】
この記事では、WordPressプラグイン「XO Security(エックスオー セキュリティ)」の初期設定と使い方を、画像を用いてわかりやすくご紹介します。
WordPress(ワードプレス)で必ず最初にインストールするのが、セキュリティ対策プラグインです。
無料で簡単にセキュリティ対策ができるので、「XO Security」は初心者におすすめです。
ログインページのURL変更は定番ですね。
なるほど!大切なサイトを乗っ取りから守りたいですね。
- 「XO Security」の初期設定が完了できる
- 設定項目の重要度がわかる
- 管理画面にログインできないときの対処法がわかる
この記事を最後まで読めば、WordPress(ワードプレス)で不正アクセス対策がすぐ完了します。
ぜひ最後まで進めてみてください。
すでに途中まで進めている人は、目次から該当箇所に飛ぶこともできます。
セキュリティ対策プラグイン「XO Security」は必要か?
セキュリティ対策プラグインは、以下のような目的で必要になります。
- 自分の個人情報漏洩を防ぐため
- 顧客の個人情報漏洩を防ぐため(ビジネスサイト)
- サイトの改ざんや乗っ取りを防ぐため
- 踏み台にされて、第三者を攻撃しないため
公開されたサイトは、気づいていないだけで、悪意のあるロボットから毎日攻撃を受けています。
踏み台にされると、海外から警告が届いたりします。
WordPress(ワードプレス)を利用する場合は、必ずインストールするようにしてください。
以下のような対策も合わせて実施してください。
- サイト表示名(ニックネーム)をユーザー名(ログインID)から変更する
- 簡単なパスワードから複雑なパスワードに変更する
- サイトをSSL(https)対応する(Really Simple SSLなど)
- WordPress本体、テーマ、プラグインなどを定期的にバージョンアップする
セキュリティ対策をしていないとどうなるか?
例えば、よくあるパスワードリストを使った辞書攻撃をブロックすることができません。
時間はかかりますが、いずれ突破されます。
なるほど!対策が必要ですね。
例えば、自分以外の誰かがログインしても、気づくことができません。
設定しておけば、ログイン通知メールが届きます。
なるほど!すぐ気づけますね。
例えば、コメントスパムが毎日のように届きます。
ロボット判定機能でスパムを防止できます。
なるほど!余計な通知が減りますね。
例えば、トップページURLに「/wp-login.php」や「/wp-admin/」を追加すると、誰でもログインページにアクセスできます。


ログインURLの変更で対策できます。
なるほど!攻撃されにくくなりますね。
プラグイン「XO Security」とは
「XO Security」は、初心者向けのセキュリティ対策プラグインです。
- ログイン試行回数などを制限(プラグイン「Limit Login Attempts」が不要)
- CAPTCHA(画像認証)でログイン認証
- ログインURLの変更(管理画面と分けることができる)
- コメントスパム対策(プラグイン「Akismet」が不要)
- 投稿者スラッグの秘匿(プラグイン「Edit Author Slug」が不要)
- 2要素認証が可能(プラグイン「Two-Factor」が不要)
「XO Security」と同様のセキュリティ対策プラグインで、.htaccessを使用する「SiteGuard WP Plugin」「CloudSecure WP Security」もあります。




「XO Security」と「SiteGuard」「CloudSecure」の比較
セキュリティ対策プラグイン「XO Security」と「SiteGuard WP Plugin」「CloudSecure WP Security」の違いを比較してみましょう。
| 重要度 | 項目 | CloudSecure | SiteGuard | XO Security |
|---|---|---|---|---|
| 高 | ログイン障害の少なさ(.htaccess不要) | × | × | ○ |
| 低 | 管理ページアクセス制限 | ○ | ○ | × |
| 高 | ログインURLの変更 | ○ | ○ | ○ |
| 高 | ログインCAPTCHA(画像認証) | ○ | ○ | ○ |
| 高 | コメントCAPTCHA(画像認証) | ○ | ○ | ○ |
| 中 | 2段階認証 | ○ | × | ○ |
| 高 | コメントチェックボックス | × | × | ○ |
| 低 | コメント日本語のみ制限 | × | × | ○ |
| 中 | ログインエラーメッセージの簡略化 | ○ | ○ | ○ |
| 高 | ログインロック(試行回数制限など) | ○ | ○ | ○ |
| 高 | メールアドレスのログイン拒否 | × | × | ○ |
| 中 | ログインアラート(メール通知) | ○ | ○ | ○ |
| 中 | ログインログ(履歴) | ○ | ○ | ○ |
| 低 | フェールワンス(必ず一回ログイン失敗) | × | ○ | × |
| 高 | XML-RPC の無効化 | ○ | ○ | ○ |
| 中 | REST API の無効化 | ○ | ○ | ○ |
| 高 | 投稿者スラッグの秘匿 | × | × | ○ |
| 低 | 投稿者スラッグへリダイレクト禁止(ユーザー名漏えい防御) | ○ | ○ | × |
| 中 | WordPressバージョン情報の秘匿 | × | × | ○ |
| 低 | バージョンアップの更新通知(メール通知) | ○ | ○ | × |
| 中 | WAF機能 | ○ | × | × |
| 低 | SiteGuard WAFのチューニング設定 | × | ○ | × |
| 低 | メンテナンスモード | × | × | ○ |
| 高 | 設定内容の保持 | × | × | ○ |
「XO Security」は.htaccessファイルを改変しないため、設定ミスなどでログイン障害になりにくいです。
これだけでも「XO Security」がおすすめですが、他にもかゆいところに手が届くようになっています。
- 設定画面がシンプルでわかりやすい
- コメント荒らし(コメントスパム)をCAPTCHA(画像認証)なしでも対策できる
- メールアドレスでのログインを拒否できる
- 2要素認証もプラグイン1つで実現できる
- プラグインを無効化しても設定が保存されている
XO Securityは初心者向け、SiteGuard・CloudSecureは技術がわかる人向けです。
.htaccessとは、サーバーでディレクトリ単位に格納できるテキストファイルで、アクセス制限などが可能です。
ApacheやApache互換のLiteSpeedなどのWebサーバーで利用できます。
「XO Security」で不要になるプラグイン
「XO Security」を利用すると、機能が重複する以下のプラグインは不要になります。
| プラグイン名 | 説明 |
|---|---|
| Limit Login Attempts | ログイン試行回数の制限 |
| Akismet Spam Protection | コメントスパム対策 |
| Edit Author Slug | 投稿者スラッグの秘匿 |
| Two-Factor | 2要素認証 |
アンインストールしてしまいましょう。
セキュリティ対策プラグインとして「Wordfence Security」も有名ですが、初心者にはおすすめしません。
- 動作が重いため、サイト高速化(ページ表示速度)の妨げとなる
- WAF機能による不具合やログイン障害が増える
プラグイン「XO Security」を導入する流れ
WordPress(ワードプレス)の管理画面から「XO Security」プラグインをインストールします。
プラグインを有効化したら「ログインページ変更」などの設定を確認・変更していきます。
「ログインページURL」を変更した場合は、必ずブックマークしておきましょう。
1) プラグイン「XO Security」をインストール
作業を開始する前に、サーバーでバックアップを取得しておくことをおすすめします。
WordPress(ワードプレス)にログインしたら、左メニューの[プラグイン]→[新規追加]をクリックして、[プラグインの検索]をします。


[プラグイン]→[新規追加]から「XO Security」を検索して、[今すぐインストール]した後に[有効化]します。


2) プラグイン「XO Security」の設定方法
「XO Security」は、デフォルト設定がすべてOFFのため、必ず設定変更するようにしてください。
時間のない方は、画像だけ見ながら設定作業をしてみてください。
事前) ステータス
左メニューの[設定]→[XO Security]をクリックして、「XO Security 設定」を開きます。
[ステータス]タブを見ると、まだ何も設定されておらず、ログインログ(履歴)だけ記録が開始されています。


1) ログイン設定(重要度:高)
タブメニューの[ログイン]をクリックして、「ログイン設定」画面を開きます。


試行回数制限、応答遅延、ログインページの変更、ログインIDの種類、ログインエラーメッセージを変更します。


| 重要度 | 設定項目 | 説明 |
|---|---|---|
| 高 | 試行回数制限 | 試行回数が多いとログインロック → 12時間で4回までリトライ可能に設定 |
| 中 | ブロック時の応答遅延 | ログインロック時に応答遅延 → 最大(120秒)に設定 |
| 中 | 失敗時の応答遅延 | ログイン失敗時に応答遅延 → 最大(10秒)に設定 |
| 高 | ログインページの変更 | ログインURL(wp-login.php)の変更 → 変更したら必ずブックマーク |
| 高 | ログイン ID の種類 | ユーザー名とメールアドレスから選択 → 公開するメールアドレスはログイン拒否 |
| 低 | ログイン言語制限 | ログインする言語を制限 → PHP(プログラミングコード)の編集が必要 |
| 中 | ログインエラーメッセージ | ログイン失敗時のエラー表示 → 簡略化してログイン失敗理由を秘匿 |
| 中 | 2要素認証 | スマホアプリによる2要素認証 → 通常は不要(必要な場合は後述) |
ログインページの変更を設定した場合、必ず変更したログインページのURLをブックマークしておいてください。


ログインページからでないと、管理画面やダッシュボード(/wp-admin/)にアクセスできなくなります。
SWELLテーマを使用している場合に、ログインURLを変更すると勝手にログアウトすることがあります。
以下の記事を参考に、Prefetchの除外設定をしてください。
ログイン ID の種類は、メールアドレスのログインを拒否するため、「ユーザー名のみ」にするのがおすすめです。
悪意のある人物・ロボットが、公開されているメールアドレスを収集して、不正ログインに用いる恐れがあります。
ログインエラーメッセージは、存在するユーザー名を秘匿するため簡略化するのがおすすめです。
WordPress(ワードプレス)では、以下のようにユーザーが存在するかどうか、エラーメッセージで判別できてしまいます。
ユーザーが存在しない場合


ユーザーが存在する場合


このエラーメッセージを同じにすることで、ユーザー名やメールアドレスが特定されるのを防止します。
2要素認証は、その他のセキュリティ設定を行なっていれば過剰な対策です。
ログイン操作が煩雑になり、スマホを変えたりしてログインできなくなる場合もあります。
以下のようなケースで利用したい場合は、設定方法を後述します。
- ユーザー情報を扱う会員サイト
- 個人情報を扱うECサイト
- 社外秘情報・機密情報を扱う社内サイト
- 運用請負などで万一が許されない受託サイト
CAPTCHA、ログインアラートを変更して[変更を保存]をクリックします。


| 重要度 | 設定項目 | 説明 |
|---|---|---|
| 高 | CAPTCHA | ログインフォームに画像認証を設置 → 海外ロボットが対応しにくい「ひらがな」を選択 |
| 低 | パスワードリセットリンク | 「パスワードをお忘れですか?」のリンク表示 → 本当に忘れたときのために「有効」のまま |
| 低 | サイトへ移動リンク | 「← デモサイト へ移動」のリンク表示 → ドメイン同じなら「有効」のまま |
| 中 | ログインアラート | 誰かがログインしたときのメール通知 → 自分以外のログインに気づくためにON |
画像認証(CAPTCHA)は、日本語サイトであれば、「英数字」ではなく「ひらがな」に設定することをおすすめします。
日本語対応のロボットは少ないため、日本語にするだけで強力なロボット対策になります。
画像認証(CAPTCHA)を「ひらがな」に設定すると、以下のようなログインページになります。


画像認証(CAPTCHA)は、キャッシュプラグインやCDNなどを利用している場合、ログインできなくなる恐れがあります。
詳しいエンジニアに作業を依頼することをおすすめします。
キャッシュプラグイン(高速化プラグイン)としては、以下のようなものがあります。
2) コメント設定(重要度:中)
記事にコメント可能な設定にしている場合は、必ず設定を行いましょう。
WordPressのコメント設定は以下をご覧ください。


タブメニューの[コメント]をクリックして、「コメント設定」画面を開きます。


ボット保護チェックボックスをONにして[変更を保存]をクリックします。


| 重要度 | 設定項目 | 説明 |
|---|---|---|
| 高 | CAPTCHA | コメントフォームに画像認証を設置 → ユーザーはひらがなで画像認証を入力 |
| 低 | スパム保護フィルター | コメントフォームを日本語のみに制限 → ユーザーは気にならないが、bot増加 |
| 中 | スパムとして保存されているコメントのメールアドレス | スパム設定したコメントのメールアドレス制限 → コメント手動承認でないならON |
| 低 | スパムコメント | スパムコメントをどうするか → ブロック/ スパムとして保存 / ゴミ箱 から選択 |
| 高 | ボット保護チェックボックス | 「私はロボットではありません。」チェックボックスを追加 → ユーザーはチェックボックスをチェック |
スパム保護フィルターでは、日本語タイトルをコピペするBotに突破されます。
ユーザー操作が必要になりますが、「CAPTCHA(画像認証)」か「ボット保護チェックボックス」のどちらかを設定するのをおすすめします。
両方設定してしまうと、ユーザビリティが損なわれるため、片方だけで十分です。
「ボット保護チェックボックス」をONにすると、以下のようにコメント入力の際にチェックボックスに同意が必要になります。


これは、人とロボットプログラムの挙動を判別するためのものです。
3) XML-RPC 設定(重要度:高)
タブメニューの[XML-RPC]をクリックして、「XML-RPC設定」画面を開きます。


XML-RPC の無効化とXML-RPC ピンバックの無効化のトグルをONに変更して[変更を保存]をクリックします。


| 重要度 | 設定項目 | 説明 |
|---|---|---|
| 中 | XML-RPC の無効化 | XML-RPC認証の無効化 → できればON |
| 高 | XML-RPC ピンバックの無効化 | XML-RPC ピンバックの無効化 → 必ずON |
XML-RPCとは、プログラム開発に利用する通信方式(プロトコル)の一種です。
ブルートフォースアタック(総当たり攻撃)などの攻撃に悪用されることがあります。
ただし、XML-RPCを無効にすると、プラグインが動かなくなってしまうことがあります。
その場合は、XML-RPC の無効化をOFFにしてみてください。
XML-RPCがONのままだと、アクセスログにたくさん攻撃のログインログが残るはずです。
それだけ、XML-RPCを狙った攻撃は多いです。
4) REST API 設定(重要度:中)
タブメニューの[REST API]をクリックして、「REST API設定」画面を開きます。


REST API の無効化を設定し、以下をチェックして[変更を保存]をクリックします。
/wp/v2/users
/wp/v2/users/(?P<id>[\d]+)


| 重要度 | 設定項目 | 説明 |
|---|---|---|
| 中 | REST API の無効化 | REST API機能の無効化 → 必要な箇所のみ無効化 |
REST APIとは、プログラム開発に利用する通信方式(プロトコル)の一種です。
これまでに、サイト改ざんなどの脆弱性を悪用する攻撃が行われています。
ただし、REST APIを無効にすると、プラグインが動かなくなってしまうことがあります。
そのため、ユーザー名の秘匿に関わる以下の項目のみ無効化するのをおすすめします。
5) 秘匿設定(重要度:中)
タブメニューの[秘匿]をクリックして、「秘匿設定」画面を開きます。


投稿者スラッグの編集、コメント投稿者クラスの削除、oEmbed ユーザー名の削除、バージョン情報の削除、readme.html の削除をONにして[変更を保存]をクリックします。


| 重要度 | 設定項目 | 説明 |
|---|---|---|
| 中 | 投稿者スラッグの編集 | 投稿者アーカイブ(Authorページ)のURL変更 → ユーザー名を秘匿するためONに変更 |
| 低 | 投稿者アーカイブの無効化 | 投稿者アーカイブ(Authorページ)の無効化 → Authorページが不要ならON |
| 中 | コメント投稿者クラスの削除 | コメント投稿者に含まれるIDの削除 → ユーザー名を秘匿するためONに変更 |
| 中 | oEmbed ユーザー名の削除 | oEmbed JSONデータに含まれるIDの削除 → ユーザー名を秘匿するためONに変更 |
| 低 | RSS/Atom フィードの無効化 | RSSフィードの無効化 → RSSフィードが不要ならON |
| 中 | バージョン情報の削除 | WordPressバージョン情報の削除 → 古い脆弱性を狙われないようにONに変更 |
| 中 | readme.html の削除 | WordPressの標準ファイル → WordPressとバレないようにONに変更 |
- 3.3.0から「oEmbed ユーザー名の削除」の機能が追加されました。(2022/7/28)
WordPressの「表示設定」で、「フィードの各投稿に含める内容」を[要約]に設定している場合は、RSS/Atom フィードの無効化しなくても大丈夫です。


その他のWordPress(ワードプレス)の初期設定については、以下を参考にしてください。


投稿者スラッグの編集をONにした場合、投稿者スラッグをデフォルト設定(ユーザー名)から変更する必要があります。
左メニューの[ユーザー]→[プロフィール]もしくは右上のアイコンから、「プロフィール設定」画面を開きます。
ページ下部の「投稿者スラッグ」をユーザー名以外に変更して[プロフィールを更新]をクリックします。


投稿者スラッグを「空白」にしてしまうと、ユーザー名(ログインID)が設定されるため注意してください。
投稿者アーカイブとは、投稿者ごとに記事一覧を表示するアーカイブページです。著者ページとも呼びます。
私(suya)の投稿者アーカイブは以下です。
> https://wp-search.org/ja/blog/author/suya/
投稿者スラッグとは、投稿者アーカイブページのURLのユーザー名(例:suya)を表す部分です。
WordPressでは、この「ユーザー名=ログインID」になっているため、簡単にログインIDがわかってしまいます。
以下のURLにアクセスしてみてください。
> https://wp-search.org/ja/blog/?author=1
ユーザー名を知らなくても、上記のURLからリダイレクトされるので、簡単にユーザー名がわかります。
そして、不正ログイン攻撃は、ほぼこのユーザー名を特定して行われます。
そのため、投稿者スラッグからログインIDを推測できないような対策を行うわけです。
6) メンテナンス(重要度:低)
「メンテナンス」画面は、サイトをメンテナンスする際に利用します。


メンテナンスモードにすると、サイトがメンテナンス表示になります。
ログインしたままだと通常表示のままなので、必ずログアウトして確認してください。


メンテナンスモード中でも、変更されたログインURLからログインが可能です。
7) 環境設定(重要度:低)
「環境設定」画面は、デフォルト設定(自動)のままで大丈夫です。


| 重要度 | 設定項目 | 説明 |
|---|---|---|
| 低 | IP アドレス取得方法 | 接続IPアドレスの取得方法 → CDNなどで利用 |
| 低 | ダッシュボード ログイン情報ウィジェット | ダッシュボード表示 → ご自由に |
| 低 | ログインログ 自動削除 | ログインログ(履歴)の保存期間 → ご自由に |
| 低 | ログインログ デフォルトで表示する結果 | ログインログのデフォルト表示 → ご自由に |
以上で、セキュリティ対策プラグイン「XO Security」の設定は完了です。
ログインページの変更を設定した場合、必ず変更したログインページのURLをブックマークしておいてください。


ログインページからでないと、管理画面やダッシュボード(/wp-admin/)にアクセスできなくなります。
参考) ログインログの確認
左メニューの[ユーザー]→[ログインログ]をクリックすると、「ログインログ(ログイン履歴)」を確認することができます。


3) 2要素認証の利用方法
2要素認証は、その他のセキュリティ設定を行なっていれば過剰な対策です。
ログイン操作が煩雑になり、スマホを変えたりしてログインできなくなる場合もあります。
以下のようなケースでのみ利用するようにしましょう。
- ユーザー情報を扱う会員サイト
- 個人情報を扱うECサイト
- 社外秘情報・機密情報を扱う社内サイト
- 運用請負などで万一が許されない受託サイト
2要素認証をONにした場合は、ユーザープロフィールから追加設定を行います。


スマホに「Google Authenticator」や「Authy」などのTOTP(ワンタイムパスワード)アプリをインストールします。




アプリから管理画面のQRコードを読み込み、認証コード(ワンタイムパスワード)を入力します。
次回から、ログイン時に同じようにアプリの認証コード(ワンタイムパスワード)を入力することになります。
Authyのほうが評判はいいです。
よくわからない場合は、以下を参考にしてください。


4) URLを忘れたとき / 管理画面にログインできないときの対処法
FTPソフトやレンタルサーバーのファイルマネージャーでサーバーディレクトリにアクセスします。
/public_html/サイト/wp-content/plugins/xo-security/を「xo-security2」などに変更します。
/サイト/public_html/wp-content/plugins/xo-security/などの場合もあります。
プラグイン「XO Security」が無効化された状態でログインできるはずです。
/public_html/サイト/wp-content/plugins/xo-security2/を「xo-security」に戻します。
/サイト/public_html/wp-content/plugins/xo-security2/などの場合もあります。
必ず変更したログインページのURLをブックマークしておきましょう。
画面が変わらない場合は、Cookie(クッキー)やブラウザキャッシュをクリアするか、別のブラウザでアクセスしてみてください。
5) その他の対処法
404エラーページ(Not Found)が表示されるときの対処方法
ログアウトした状態で、間違ったログインページや管理画面にアクセスしようとすると、「404 Not Found」などと表示されます。
ブックマークなどから、変更したログインページURLにアクセスしてください。
変更したログインページURLがわからなくなった場合は、1つ上の「3) URLを忘れたとき / 管理画面にログインできないときの対処法」をご覧ください。
認証画像が表示されない場合
キャッシュプラグインやCDNを利用していると、CAPTCHAの認証画像が表示されない場合があります。
キャッシュ側で除外設定が必要ですが、よくわからない場合は画像認証をOFFにして使用しましょう。
ログインする前ですので、キャッシュクリアすることはできません。
よくある質問(FAQ)
この記事のまとめ
プラグイン「XO Security」の初期設定と管理画面にログインできなくなったときの復旧方法を見てきました。
重要度の高いところは、必ず設定するようにしてください。
設定忘れてました。
セキュリティプラグインとしては、「BBQ Firewall」もおすすめです。
WordPress(ワードプレス)で最初に入れるその他の基本プラグインは、以下を参考にしてください。


WordPress(ワードプレス)の初期設定がまだの場合は、以下を参考にしてください。


この記事の参考情報
- XO Security公式サイト

コメント