WordPress(ワードプレス)のセキュリティ対策プラグインとして注目されている「XO Security(エックスオー・セキュリティ)」。

本記事では、XO Securityの基本的な使い方から設定方法、ログインページの変更、ログイントラブルの対処法まで、初心者にもわかりやすく解説します。


WordPressテーマ「GLUE」

無料で高機能なWordPressテーマが手に入る。  

GLUE

XO Securityとは?

XO Security

XO Securityは、WordPressサイト向けの無料セキュリティプラグインで、主にログイン関連の保護機能に特化しています。

日本人開発者によって作られており、日本語環境で使いやすいのが特徴です。

XO Security

主な特徴

  • 完全無料(広告なし・追加課金なし)
  • 軽量でWordPressの動作に負担をかけにくい
  • プラグイン画面も含めてすべて日本語対応
  • 高機能なわりに初心者でも設定しやすいUI

必要な機能だけをシンプルに導入したい方に、XO Securityは検討に値します。

特に、セキュリティ対策にコストをかけたくない個人・中小企業、海外製プラグインが不安な方に向いています。

XO Securityのインストールと有効化

プラグインのインストールは、WordPressの管理画面にログイン後、以下の操作を行います。

  1. プラグイン > プラグインを追加をクリックする
  2. 検索窓から「XO Security」と検索
  3. 「今すぐインストール」をクリックする

XO Securityのインストール方法

その後、「今すぐインストール」の表示が「有効化」に変わりますので、クリックしたら完了です。

XO Securityの設定方法

WordPress管理画面で「設定」>「XO Security」の順に開きます。

XO Securityの設定方法1

ステータスの画面が表示されますので、こちらで設定した項目を確認できます。

各項目の左側に丸が付いていますが、こちらを押して設定するのではなく、上部のタブから設定します。

XO Securityの設定方法2

ログイン

「ログイン」のタブをクリックすると、WordPressサイトのログインページのセキュリティ設定ができます。

XO Securityの設定方法3

  • 試行回数制限:回数制限なし、または1時間、12時間、24時間、48時間の間で任意の回数を選択。
  • ブロック時の応答遅延:ログイン試行がブロックされているIPアドレスからのアクセスに対して、応答を遅らせる秒数を設定(0から120秒までを指定)。
  • 失敗時の応答遅延:ユーザー名やパスワードを間違ってログインに失敗した場合に、応答を遅らせる秒数(0から10秒までを指定)。
  • ログインページの変更:英小文字や数字など任意の文字列でログインURLを設定でき、元のURLは無効になります。
  • ログインIDの種類:ユーザー名とメールアドレス(デフォルト)、ユーザー名のみ、メールアドレスのみから選択。
  • ログイン言語制限(※):特定の言語(ブラウザの言語設定)のユーザーだけログインができる設定。WordPress内のファイル「wp-login.php」に指定のコードを記述。中上級者または開発者向け。
  • ログインエラーメッセージ:ログイン失敗時に表示されるエラーメッセージの内容を選択(デフォルトと簡略化から選択)。攻撃者に余計な情報を与えないようにできる。
  • 2要素認証(※):通常のログイン情報入力後、さらに認証アプリに表示されたコードを入力してログインする設定。国際標準であるTOTP対応の認証アプリ(Google Authenticatorなど)であれば利用可能。
  • ログインフォーム:CAPTCHA(無効、英数字、ひらがなから選択)、パスワードリセットリンクとサイトへ移動リンク(有効・無効から選択)。
  • ログインアラート:ログイン後のメール通知設定(件名と本文の入力、管理者のみのチェックボックス)。

※ログイン言語制限と2要素認証の設定方法は別の項目で解説します。

ログインURLを変更すると、従来のログインURLが利用できなくなりますので、必ずブックマークをしてください。

ログイン言語制限(任意)

ログイン言語制限をする場合は、WordPressの「wp-config.php」ファイルを開き、コードを一行記述して設定します。

やり方としては、レンタルサーバーのファイルマネージャー上で編集、またはFTP(ファイル転送ソフト)でファイルをダウンロード、編集、アップロードして設定します。

以下、人気レンタルサーバー「エックスサーバー」のファイルマネージャーの画面で解説します。

はじめに、ファイルマネージャーから「wp-config.php」を探します。ファイルを見つけたら、事前に該当ファイルをダウンロードしておくなど、必ずバックアップをしておいてください。

※エックスサーバーの場合は、「public_html」というフォルダに、WordPressのファイルが入っていますが、サーバー会社によってフォルダ名が違う場合があります。

  1. 「wp-config.php」を選択
  2. 「編集」をクリックする

XO Securityのログイン言語制限1

以下のコードをファイルに記述します。

▼言語を1つだけ設定する場合

define( 'XO_SECURITY_LANGUAGE_WHITE_LIST', 'ja' );

▼言語を2つ以上設定する場合

define( 'XO_SECURITY_LANGUAGE_WHITE_LIST', 'ja,en' );

  1. 上記のコードを/* That's all, stop editing!〜の上に追加
  2. 「更新」をクリックする(FTPをご利用の方は、編集したファイルをアップロード)

XO Securityのログイン言語制限2

これで言語設定は完了です。動作確認は、ログイン状態やキャッシュの影響を受けないようにするため、普段とは異なるブラウザやシークレットモードを使用します。

そのブラウザの言語設定を、指定した言語以外で設定してログインしてみてください。

2要素認証の有効化(任意)

2要素認証を使う場合は、ログインタブで有効化後、次の手順を実行します。

WordPressの管理画面から、ユーザー > プロフィールの順にアクセスし、下にスクロールします。

XO Securityの2要素認証の設定方法1

ページ下部に秘密鍵とQRコードが表示され、以下の操作を行います。

  1. 認証アプリで、QRコードの読み取りまたは秘密鍵の入力
  2. アプリに表示された6桁のコードを入力
  3. 「プロフィールを更新」を押して完了

※Google Authenticatorのアプリでは、右下の「+」でQRコードを読み取れます。

XO Securityの2要素認証の設定方法2

次回以降にログインする場合は、ログイン情報の入力後、さらに入力欄が表示されます。アプリ上に表示されている6桁のコードを入力してログインします。

コメント

「コメント」のタブをクリックすると、記事下などに表示されるコメント欄のセキュリティ設定ができます。

XO Securityの設定方法4

  • CAPTCHA:コメント投稿時に画像認証(CAPTCHA)を表示して、ボットによる自動投稿を防ぎます(無効・英数字・ひらがなから設定)。
  • スパム保護フィルター:日本語文字を含まない場合、自動的にスパム扱いし、任意のメッセージを表示。スパムとして保存されているコメントのメールアドレスを、自動的にスパム扱い。
  • スパムコメント:検出されたスパムコメントの処理方法(ブロック、スパムとして保存、ゴミ箱へ移動)を指定。
  • ボット保護チェックボックス:コメントフォームに「私はロボットではありません」などのチェックボックスを表示。

Akismet Anti-Spam(アキスメット アンチスパム)など、スパムコメント対策のプラグインを利用されている場合は機能が重複しますので、設定にご注意ください。

また、コメント欄を非表示にしたい場合は、以下を参照してください。

XML-RPC

XML-RPC(エックスエムエル・アールピーシー)は、WordPressに標準で備わっている外部からリモート操作をするための機能です。

例えば、スマホから記事を投稿するなど便利な機能がある一方でセキュリティリスクもあります。

XO Securityの設定方法5

  • XML-RPCの無効化(部分的にブロック):WordPressへのログインや投稿操作など、認証が必要な機能だけをブロック。
  • XML-RPCピンバックの無効化(完全にブロック):ピンバック機能も含めて、XML-RPCを完全に停止。

XML-RPCピンバックとは、自身のWebページに他者のWebページのリンクを貼ると、相手に「リンクされましたよ」と通知(ピンバック)を送ることができます。

逆に、他の誰かがあなたのサイトにリンクを貼ると、あなたのサイトにも通知が届くという双方向の仕組みです。

WordPressを外部アプリやAPI(外部連携のための仕組み)で操作していない場合、XO Securityで「XML-RPCピンバックの無効化」にチェックを入れておけば、セキュリティリスクを下げることができます。

REST API

XO Securityの「REST API の無効化」設定は、不要なエンドポイントを制限してセキュリティを高めるためのものです。

エンドポイントとは、WordPressの情報にアクセスしたり操作したりするための「住所のようなもの(URLの一部)」です。

個別のエンドポイントを無効化できますので、細かいセキュリティ対策ができますが、知識がないと設定し辛いのが難点です。

XO Securityの設定方法6

  • oEmbed 関連(/oembed/1.0: 外部サイトの埋め込みの情報やコードの取得(セキュリティリスクあり)。
  • WordPressコア REST API 関連(/wp/v2/:投稿、ページ、リビジョン(投稿の履歴)、自動保存、メディア、ナビゲーション、テーマなど、WordPressの機能全般を外部から操作・取得。
  • WordPressのサイトヘルス関連(/wp-site-health/v1:WordPress管理画面の「ツール → サイトヘルス」での診断に使われている機能。
  • ブロックエディター補助API関連(/wp-block-editor/v1Gutenbergブロックエディターの補助的な処理を行うAPI。

その他、各種プラグインをインストールすると、無効化できるエンドポイントが追加される場合があります。

無効化すると安心なエンドポイント

どれを無効化すれば良いかわからない場合は、以下のエンドポイントの無効化を参考にしてください。

ただし、これらのエンドポイントの多くは、認証されたユーザー(ログイン済み)でなければ取得できないものも含まれます。プラグインやテーマの設定次第で認証不要になることがあり、不要なものは無効化するのが安全です。

無効化する場合は、事前のバックアップ取得と、無効化した後の動作チェックを必ず行いましょう。

  • /oembed/1.0 関連oEmbedは、外部サイトからWordPress記事を埋め込むための機能で、埋め込み情報(author_nameauthor_url)からユーザー名が漏洩する可能性あり。
  • /wp/v2/media 関連:アップロード済み画像・ファイル情報を取得可能。顔写真など個人・企業情報の漏洩リスクあり。
  • /wp/v2/users 関連:ユーザー一覧を取得可能=情報漏えいリスクあり。
  • /wp/v2/settings:サイトタイトル・メール・初期設定が外部に漏れるリスクあり。
  • /wp/v2/block-renderer/:任意のブロックをAPI経由で取得。サイト構造の漏洩・無用な負荷。
  • /wp/v2/plugins 関連:プラグインの状態取得・操作(一部環境)、プラグイン構成の把握・脆弱性把握に悪用されるリスク。
  • /wp/v2/search:サイト内検索API。攻撃者による大量アクセスによる負荷や、投稿内容の構造解析のリスクあり。

その他、未使用のプラグインのエンドポイントを公開していると、未認証アクセスや脆弱性の攻撃対象になります 。無効化するか、不要であればアンインストールしておくと安心です。

注意点としては、無効化しすぎると一部のプラグインやテーマ機能、Gutenbergエディタ、ブロックエディタ関連の動作に支障をきたす場合があります。以下の2点を考慮して設定してください。

  • APIを使う外部連携ツールなどを利用していない:REST APIをある程度制限しても問題なし
  • ブロックエディタは未使用で、クラシックエディタを使用:多くのエンドポイントを無効化してもOK

秘匿

「秘匿」タブでは、サイトの情報漏洩を防ぎ、セキュリティを強化できます。

XO Securityの設定方法7

  • 投稿者スラッグの編集:投稿者スラッグ(Nicename)をプロフィール画面で編集できるようにします。初期設定ではログインIDがそのまま使われるため、ログイン名の漏洩防止に効果的です。
  • 投稿者ベースの編集:URL構造にある /author/ を任意の別の文字列(例:/writer/)に変更できます。
  • 投稿者アーカイブの無効化:投稿者ページ(例:/author/〇〇/)を無効化します。投稿者名一覧ページの存在をなくすことで、ユーザー名の特定を防止できます。
  • コメント投稿者クラスの削除:HTML内のコメントタグに付与される class=”comment-author-○○” を削除します。HTMLソースからユーザー名が推測されるのを防ぎます。
  • oEmbedユーザー名の削除:外部サイトから埋め込まれる記事情報(oEmbed)に含まれる author_name や author_url を削除。埋め込み経由でのユーザー名漏洩を防ぎます。
  • RSS/Atomフィードの無効化(※):WordPressの自動生成フィード(例:/feed/)を無効にします。コンテンツの自動取得防止、クロール負荷の軽減に役立ちます。
  • WordPressバージョン情報の削除:HTMLの <meta name=”generator”> などに出力されるWordPressのバージョン番号を削除します。特定バージョンの脆弱性を狙った攻撃を回避できます。
  • readme.html の削除:WordPressインストール時に生成される readme.html ファイルを削除します。このファイルにはWordPressのバージョンが書かれており、同様に特定バージョンの脆弱性を狙った攻撃を回避できます。

※RSS/Atomフィードを無効化すると、Feedlyなどの更新情報の取得・閲覧ツールを使っているユーザーがいた場合、機会損失になる場合があります。無効化すべきかよくご検討ください。

メンテナンス

こちらの設定は、サイト全体を一時的に訪問者から非表示にして「メンテナンス中」と表示するモードです。サイト全体のリニューアルや修正を行う場合に利用します。

ONにすると、管理者以外のユーザーにメンテナンス画面が表示されます。

XO Securityの設定方法8

環境

XO Securityの「環境」設定では、ログ管理と認証保護に関する基本動作の調整が行えます。これにより、不正アクセスの把握や対策を効率的にサポートできます。

XO Securityの設定方法9

  • IPアドレス取得方法:サイトにアクセスしてきたユーザーの IPアドレスをどのヘッダーから取得するかを設定します。通常は「自動」でOKです(XO Securityが最適な取得方法を選びます)。
  • ダッシュボード > ログイン情報ウィジェット:WordPressの管理画面ダッシュボードに、ログイン履歴(成功・失敗)を表示するウィジェットを追加します。
  • ログインログ:「自動削除」は、ログインログ(履歴)を指定期間が経過したら自動削除。「デフォルトで表示する結果」は、ログインログ表示画面で、最初に表示する対象を選べます(すべての結果、成功のみ、失敗のみなど)。
  • CAPTCHAタイプ:デフォルト(ゴシック体のようなフォント)、彫刻体フォント、おまかせから選択

XO Securityのキャプチャ設定

設定後の注意点

  • ログインURLを変更した場合は、必ず記録しておきましょう。
  • 設定ミスでログインできなくなった場合は、レンタルサーバーのファイルマネージャーやFTPソフトでプラグインを一時的に無効化できます(後述します)。
  • 他のセキュリティ系プラグインと併用すると干渉することがあるため注意が必要です。

設定をひと通り済ませれば、XO Securityは自動的に不正アクセスや不審な挙動をブロックしてくれます。

XO Securityのトラブルとその対処法

「XO Securityでログインできない」というトラブルは、主に以下が原因です。

  • ログインURLを変更後、ブックマークしておらずアクセスできない → プラグインを一時停止する
  • 2要素認証の設定ミス → ログインタブでのチェックと、プロフィールページで認証しているか確認
  • IPアドレス制限で自分のアクセスがブロックされた → ファイルマネージャーやデータベースでブロック解除(またはプラグイン一時停止)
  • ログイン失敗回数の制限に引っかかった → 時間経過で自動解除されるか、FTPからログファイルを削除
  • ログイン言語制限の設定ミス → ブラウザの言語設定を日本語に戻す、または wp-config.php の該当行を削除

プラグインの一時無効化とバックアップの復元方法

これらの対処法として、以下の2つの対処法のどちらかを選択してください。

  • ファイルマネージャーやFTPでプラグインを一時無効化/wp-content/plugins/xo-security/ フォルダ名を一時変更(/xo-security-backup/など)すると、一時的に無効化できます。
  • バックアップから復元:レンタルサーバーのバックアップ機能からの復元や、バックアップ・プラグインをインストールされている方は、そちらから復元します。

まとめ

XO Securityは、WordPress初心者でも簡単に使えるセキュリティ対策プラグインです。無料ながら必要十分なセキュリティ機能を提供してくれます。

設定が不安な方は、インストール前にバックアップを取ることをおすすめします。ぜひXO Securityを活用してみてください。

WordPressテーマ「GLUE」

無料で高機能なWordPressテーマが手に入る。  

GLUE