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回以上)に設定してください。これは、アプリがログインに失敗した場合に自動でログインを繰り返す (不具合?) 場合があるためです。
  • ログイン アラートは使用しないでください。アプリは頻繁にログインを繰り返します。

更新履歴

v3.4.1

  • スパムとして保存されているコメントのメールアドレスを、スパムとする機能を追加しました。
  • セキュリティを強化するために、複数の翻訳テキストにエスケープ処理を追加しました。
  • コードをリファクタリングしました。

v3.4.0

  • WordPress の最低必要バージョンを4.9に引き上げました。
  • パフォーマンスの改善を行いました。
  • コードをリファクタリングしました。

v3.3.0

  • oEmbed レスポンスデータからユーザー名を削除する機能を追加しました。

v3.2.1

  • 投稿者スラッグ (Nicename) を編集できない不具合を修正しました。

v3.2.0

  • WordPress マルチサイトのすべてのサイトで共通のログインページを設定するオプションを追加しました。

v3.1.0

  • WordPress マルチサイトでは、ログをサイトごとに記録するようにしました。
  • RSS および Atom フィードを無効にする機能を追加しました。

v3.0.0

  • 投稿者スラッグの編集機能を追加しました。
  • CAPTCHA 入力フィールドのオートコンプリートを無効にしました。

v2.9.0

  • WordPress バージョン情報を隠す機能を追加しました。

v2.8.0

  • スパムコメントをブロックする機能を追加しました。

v2.7.2

  • WordPress マルチサイトの場合、特権管理者のみがログインログを参照できるように変更しました。

v2.7.0

  • 設定ページを再構成しました。
  • ログインフォームをカスタマイズする機能を追加しました。

v2.6.0

  • 投稿者アーカイブの無効化時に、標準サイトマップのユーザープロバイダーを削除するように変更しました。

v2.5.0

  • ログインログにログインタイプ項目を追加しました。
  • 一部の IPv6 アドレスをログに記録できない不具合を修正しました。

v2.4.0

  • IP アドレスの取得方法を選択できるオプションを追加しました。
  • 翻訳テキストの漏れを修正しました。
  • 管理画面の CSS を微調整しました。

v2.3.0

  • ユーザー名によるログインを無効にし、メールアドレスのみによるログインを有効にする機能を追加しました。

v2.2.0

  • WordPress 5.3 に対応しました。

v2.1.3

  • 管理画面のダッシュボードの表示が遅くなる場合がある不具合を修正しました。 (mocchii 氏に感謝)

v2.1.0

  • サイト情報を表示する機能を追加しました。
  • REST API をルート単位で有効無効を設定できるようにしました。

v2.0.0

  • ログイン時のエラーメッセージを汎用的(詳細を表示しない)に変更するオプションを追加しました。
  • メールアドレスによるログインを無効化するオプションを追加しました。

v1.9.0

  • コメントフォームに CAPTCHA を追加しました。

v1.8.0

  • ログインページに CAPTCHA を追加しました。

v1.7.0

  • 必須の WordPress バージョンを 4.6 へ変更しました。

v1.6.0

  • プロキシサーバー経由では、HTTP_X_FORWARDED_FOR より IP アドレスを取得するように変更しました。
  • 言語設定によるログイン制限を追加しました。

v1.5.3

  • クロスサイトスクリプティング (XSS) の脆弱性を修正しました。

v1.0.0

  • 最初のリリース

紹介記事リンク

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