XO Security プラグイン

XO Security プラグインは、 ログイン関連のセキュリティを強化する WordPress プラグインです。

主な特徴

  • .htaccess ファイルを作成したり書き換えたりしません。Apache のほか LiteSpeed、Nginx および IIS においても動作します。
  • .htaccess ファイルを書き換えないので、.htaccess を使用するプラグインとも併用することができます。
  • 外部サービスを一切使用していません。

機能

  • ログインログを記録します。XML-RPC のログイン ログも記録します。
  • ログイン試行を制限(ブルート フォース アタック対策)します。XML-RPC のログイン試行も制限します。
  • ログインアラート(ログイン時のメール送信)。
  • ログインページを変更します。
  • メールアドレスまたはユーザー名によるログインを禁止します。
  • ログインできる言語を制限します。
  • ログインページやコメントフォームに CAPTCHA を追加します。
  • ログイン時のエラーメッセージを簡略化(詳細表示しない)します。
  • REST API を無効化します。
  • 投稿者アーカイブページを無効化します。”http://(サイトURL)/?author=1” で表示される管理者のアーカイブページの URL より管理者のユーザー名を取得されてしまうのを防ぎます。
  • コメント投稿者クラスを無効化します。コメントリストに追加されるコメント投稿者クラス “comment-author-xxx”(xxx はユーザー名)を取り除きます。ユーザー名を取得されてしまうのを防ぎます。
  • XML-RPC の無効化(ブルートフォースアタック対策)します。
  • XML-RPC ピンバックの無効化(DDoS 攻撃対策)します。
  • WordPress マルチサイト対応(一部制限があります)。
  • WooCommerce ログインページを保護します。
  • スパムコメントをブロックします。
  • WordPress バージョン情報を隠します。
  • 投稿者スラッグ (Nicename) を編集します。投稿者スラッグは投稿者アーカイブページの URL などに使用されます。
  • RSS/Atom フィードを無効にします。
  • oEmbed レスポンスデータからユーザー名 (author_name および author_slug) を削除します。

WordPress マルチサイトに関する制限事項

  • メインサイトとサブサイトで個別にログインページを設定した場合、サブサイトのパスワード紛失機能は利用できません。ログインページはすべてのサイトで共通に設定することを推奨します。

インストール

  1. WordPress 管理画面->[プラグイン]->[新規追加] メニューより、[プラグインを追加] ページを開きます。
  2. 検索ボックスに、”XO Security” と入力し検索します。
  3. XO Security が見つかったら、[今すぐインストール] をクリックします。
  4. インストールが完了したら “プラグインを有効化” をクリックします。

WordPress 公式ディレクトリ

スクリーンショット

ログインログページ

ログインログ画面

XO Security 設定ページ

ステータス画面
ログイン設定画面
ログイン設定画面 – マルチサイトのメインサイトのみ

プロフィールページ

投稿者スラッグ設定画面

説明

プラグインを有効にすると、管理画面のメニューに [設定]->[XO Security] メニューと、[ユーザー]->[ログインログ] が追加されます。[XO Security] メニューより表示される XO Security 設定ページでは、XO Security プラグインのオプションを設定します。[ログインログ] メニューより表示されるログインログ一覧ページでは、ログインのログの一覧を見ることができます。

詳細な説明は、各ページの ヘルプ(画面上部の [ヘルプ] タブ)を参照してください。

定数

下記の定数を指定できます。wp-config.php に記述してください。

XO_SECURITY_UA_WHITE_LIST

ログインを許可する UserAgent の文字列(ホワイトリスト)を指定します。

複数指定する場合はカンマで区切ってください。

例:

define('XO_SECURITY_UA_WHITE_LIST', 'keyword');

XO_SECURITY_UA_BLACK_LIST

ログインをブロックする UserAgent の文字列(ブラックリスト)を指定します。

複数指定する場合はカンマで区切ってください。

例:

define('XO_SECURITY_UA_BLACK_LIST', 'XML_RPC,PEAR');

XO_SECURITY_LANGUAGE_WHITE_LIST

ログインを許可するブラウザの言語設定(ホワイトリスト)を指定します。

複数指定する場合はカンマで区切ってください。

日本語の場合のみを許可する場合の例:

define('XO_SECURITY_LANGUAGE_WHITE_LIST', 'ja');

日本語と英語を許可する場合の例:

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

FAQ

ログインできない。

  • URL を確認してください。ログインファイル名の前にディレクトリ名が付加される場合があります。(サイトアドレス)/wp/(新しいログインファイル名).php のように「/wp/」が必要な場合があります。
  • CAPTCHA を有効化しているの場合に、一部のプラグイン(Crazy Bone プラグインなど)を有効化していると、ログインできない場合があります。
  • サーバ環境によっては、IP アドレスが正しく取得できない(リバースプロシキなどですべての端末が同一の IP アドレスになるなど)場合があります。この場合は、XO Security の設定「IP アドレスの取得方法」より IP アドレスの取得方法を変更してください。
  • プラグインのインストールに失敗(ファイルの不整合など)して、ログインできない場合があります。プラグインを一旦削除して再インストールをお試しください。

CAPTCHA が表示されない。

  • CAPTCHA 画像は mbstring および GD モジュールを使用しています。これらのモジュールがインストールされている必要があります。
  • 画像を CDN 経由で配信するようなプラグイン (Flying Images プラグインなど) で、CAPTCHA 画像を指定すると表示されなくなります。CAPTCHA 画像を除外するようにしてください。
  • iThemes Security プラグインの PHP Execution が有効化されていると CAPTCHA が表示されない場合があります。

ログインページが変更できない。

  • WordPress ルートディレクトをパーミッションやプラグインなどで書き込みを禁止していると、ログインページの変更ができません。ログインページの変更時は書き込みを許可してください。ログインページの変更後は書き込みが禁止されていても動作します。
  • 既に存在するファイル名では作成できません(エラーメッセージが表示されます)。

注意事項

WordPress アプリ (Android および iOS) を使用する場合は、下記の点にご注意ください。

  • XML-RPC の無効化はしないでください。
  • 試行回数制限は多め(5回以上)に設定してください。これは、アプリがログインに失敗した場合に自動でログインを繰り返す (不具合?) 場合があるためです。
  • ログイン アラートは使用しないでください。アプリは頻繁にログインを繰り返します。

更新履歴

バージョン説明
1.0.0最初のリリース。
1.5.3クロスサイトスクリプティング (XSS) の脆弱性を修正しました。
1.6.0プロキシサーバー経由では、HTTP_X_FORWARDED_FOR より IP アドレスを取得するように変更しました。
言語設定によるログイン制限を追加しました。
1.7.0必須の WordPress バージョンを 4.6 へ変更しました。
1.8.0ログインページに CAPTCHA を追加しました。
1.9.0コメントフォームに CAPTCHA を追加しました。
2.0.0ログイン時のエラーメッセージを汎用的(詳細を表示しない)に変更するオプションを追加しました。
メールアドレスによるログインを無効化するオプションを追加しました。
2.1.0サイト情報を表示する機能を追加しました。
REST API をルート単位で有効無効を設定できるようにしました。
2.1.3管理画面のダッシュボードの表示が遅くなる場合がある不具合を修正しました。 (mocchii 氏に感謝)
2.2.0WordPress 5.3 に対応しました。
2.3.0ユーザー名によるログインを無効にし、メールアドレスのみによるログインを有効にする機能を追加しました。
2.4.0IP アドレスの取得方法を選択できるオプションを追加しました。
翻訳テキストの漏れを修正しました。
管理画面の CSS を微調整しました。
2.5.0ログインログにログインタイプ項目を追加しました。
一部の IPv6 アドレスをログに記録できない不具合を修正しました。
2.6.0投稿者アーカイブの無効化時に、標準サイトマップのユーザープロバイダーを削除するように変更しました。
2.7.0設定ページを再構成しました。
ログインフォームをカスタマイズする機能を追加しました。
2.7.2WordPress マルチサイトの場合、特権管理者のみがログインログを参照できるように変更しました。
2.8.0スパムコメントをブロックする機能を追加しました。
2.9.0WordPress バージョン情報を隠す機能を追加しました。
3.0.0投稿者スラッグの編集機能を追加しました。
CAPTCHA 入力フィールドのオートコンプリートを無効にしました。
3.1.0WordPress マルチサイトでは、ログをサイトごとに記録するようにしました。
RSS および Atom フィードを無効にする機能を追加しました。
3.2.0WordPress マルチサイトのすべてのサイトで共通のログインページを設定するオプションを追加しました。
3.2.1投稿者スラッグ (Nicename) を編集できない不具合を修正しました。
3.3.0oEmbed レスポンスデータからユーザー名を削除する機能を追加しました。
3.4.0WordPress の最低必要バージョンを4.9に引き上げました。
パフォーマンスの改善を行いました。
コードをリファクタリングしました。
3.4.1スパムとして保存されているコメントのメールアドレスを、スパムとする機能を追加しました。
セキュリティを強化するために、複数の翻訳テキストにエスケープ処理を追加しました。
コードをリファクタリングしました。
3.4.2xo_security_loginlog_checkbox フィルターフックを追加しました。
3.4.3一部の環境でログインログが記録されない場合がある不具合を修正しました。
3.4.4MySQL 5.5.13 前のバージョンに対応しました。
3.4.5PHP 8.1において CAPTCHA が表示されない場合がある不具合を修正しました。
ステータス画面のサイト情報を削除しました。
3.5.0ログインログからパスワード フィールドを削除しました。
3.5.1SQLite (Performance Lab、SQLite Database Integration プラグイン) に対応しました。
3.6.0データベース テーブルを最適化する機能を追加しました。
WordPress PHP コーディング標準に準拠するためのコード リファクタリングをしました。
WordPress 6.2 に対応しました。
3.6.1テーブルの最適化機能が動作しない不具合を修正しました。
エラー出力の問題を修正しました。
3.6.2ログインログにログインタイプが表示されない不具合を修正しました。
管理画面を高速化しました。
ログイン情報ウィジェットの有効/無効オプションを追加しました。
3.6.3ログインフォームの CAPTCHA フィールドに HTML5 “required” 属性を追加しました。
WordPress 6.3 に対応しました。
3.6.4ログインログページでログが削除できない不具合を修正しました。

紹介記事リンク

XO Security」の初期設定とログインできないときの復旧方法【変更したログインURLを忘れた場合】 | おすすめのやり方マニュアル 「マニュオン」


【XO Security】WordPressのセキュリティを強化!設定方法を徹底解説 | WPナビ