日本語で使えるセキュリティプラグインを4つ、同じ検証サイトに1つずつ入れて、外からどう見えるかを比べました。

有効化しただけの状態で、REST APIからユーザー名が見えるのを止めたプラグインは、4つのうち1つもありませんでした。どれも、設定でオンにすれば止められます。

意外だったのはSiteGuard WP Pluginです。ログイン画面のURLを変えるのに、初期設定のままだと「/wp-admin/」を開くだけで、新しいURLへ連れて行ってくれました。


WordPressで記事販売ができる「YOMERU」
記事を、そのまま収益に。
WordPressサイトで記事の有料販売ができる
無料のプラグイン「YOMERU」。

比べたプラグインと確かめ方

プラグイン 作者(WordPress.orgの表記) 試したバージョン
CloudSecure WP Security XServer 1.4.18
SiteGuard WP Plugin jp-secure 1.8.9
XO Security ishitaka 3.11.0
Really Simple Security reallysimpleplugins 9.8.3

エックスサーバー上の検証サイト(WordPress 7.1.3)に、1つずつ入れては外して試しました。確かめたのは、ログインしていない人から見える次の6か所です。

  • 「/?author=1」でユーザー名が分かるか
  • REST API(/wp-json/wp/v2/users)でユーザー名の一覧が見えるか
  • XML-RPC(/xmlrpc.php)が使えるか
  • 設定ファイル(/wp-config.php)へのアクセスが止まるか
  • RSSフィードにWordPressのバージョンが出るか
  • ログイン画面のURL(/wp-login.php)が変わるか

それぞれの意味と、自分のサイトでの確かめ方は、こちらの記事で紹介しています。

有効化しただけで、何が止まったか

確かめた場所 CloudSecure SiteGuard XO Security Really Simple Security
/?author=1 ○ ✕ ✕ ✕
REST APIのユーザー一覧 ✕ ✕ ✕ ✕
XML-RPC △ △ ✕ ✕
/wp-config.php ○ ✕ ✕ ✕
フィードのバージョン ✕ ✕ ✕ ✕
ログインURL ✕ ○ ✕ ✕

○は止まった(変わった)、✕はプラグインを入れる前と同じ、△はピンバック(リンクの通知)だけが止まり、ほかのXML-RPCの命令は使える状態です。

入れただけでいちばん多く止めたのはCloudSecure WP Securityで、XO SecurityとReally Simple Securityは、6か所とも入れる前と同じでした。この2つは、必要な機能を自分で選んでオンにする作りです。

CloudSecure WP Security

有効化すると、15ある機能のうち8つが最初からオンになります。ダッシュボードの「有効」の印が、動いている機能です。

CloudSecure WP Securityのダッシュボード

「?author=数字」の遮断と、wp-config.phpへのアクセスの遮断が、最初から働いていました。XML-RPCは、初期設定ではピンバックだけを止めます。

SiteGuard WP Plugin

有効化すると、ログインページの変更、画像認証、ログインロック、XML-RPCのピンバックの停止などがオンになります。

SiteGuard WP Pluginの設定状況

4つの中で、有効化しただけでログインURLが変わるのはSiteGuardだけでした。「wp-login.php」は404になり、「login_」と5桁の数字のURLに変わります。

ただし、初期設定のままだと、ログインしていない状態で「/wp-admin/」を開くと、新しいログインURLへ転送されました。URLを変えても、外から分かってしまう状態です。ログインページ変更の設定にある「管理画面(/wp-admin/)からログイン画面にリダイレクトしない」にチェックを入れると、転送されなくなりました。

XO Security

有効化した直後にオンになっているのは、「ログインログ記録」だけでした。ほかの機能は、すべて自分でオンにします。

XO Securityの設定ステータス

Really Simple Security

有効化すると、最初にSSLの設定を案内する画面が出ます。検証サイトはすでにSSLを使っていたので、案内は閉じて試しました。セキュリティを固める「堅牢化」の11項目は、初期設定ではすべてオフです。

Really Simple Securityの堅牢化の設定

設定をオンにすると、何が止まるか

次に、それぞれのプラグインで、ログインURL以外の5か所に関係する設定をオンにして試しました。

確かめた場所 CloudSecure SiteGuard XO Security Really Simple Security
/?author=1 ○ ○ ○ ○
REST APIのユーザー一覧 ○ ○ ○ ○
XML-RPC ○ ○ △※ ○
/wp-config.php ○ — — —
フィードのバージョン — — △ ○

—は、その機能がないものです。XML-RPCの△は、ログインが必要な命令だけが止まり、入口(/xmlrpc.php)は残っている状態です。フィードのバージョンの△は、ページのHTMLからは消えたが、フィードには残った状態です。

プラグイン オンにした設定
CloudSecure 「REST API無効化」、「XML-RPC無効化」で「XML-RPC無効」を選ぶ
SiteGuard 「ユーザー名漏えい防御」を有効にし、オプションの「REST API 無効化」にチェック。「XML-RPC 防御」で「XML-RPC 無効化」を選ぶ
XO Security 「秘匿」の「投稿者アーカイブの無効化」と「バージョン情報の削除」、「XML-RPC の無効化」、「REST API の無効化」でユーザーのエンドポイント(/wp/v2/users)だけを選ぶ
Really Simple Security 「堅牢化」の「ユーザー列挙を無効化」「XML-RPC を無効化」「WordPress のバージョンを隠す」「ディレクトリ参照を無効化」

設定をオンにすれば、ユーザー名は4つとも止められました。違いが出たのは、XML-RPC、設定ファイル、バージョンの3つです。

XML-RPC:XO Securityは「入口は残して、ログインを止める」

CloudSecureとSiteGuardは、XML-RPCを止めると「/xmlrpc.php」へのアクセスそのものが403になりました。Really Simple Securityは、アクセスしても何も返さなくなりました。

XO Securityは、「XML-RPC の無効化」だけをオンにした状態では、「/xmlrpc.php」が命令の一覧を返しました。ログインが必要な命令だけを止める作りで、パスワードを試す攻撃には使えなくなりますが、入口は残ります。

※XO Securityの設定画面の説明とプラグインのコードを見ると、同じタブの「XML-RPC ピンバックの無効化」もオンにすると、XML-RPC全体が403で止まる作りです。全体を止めたいときは、2つともオンにします。

設定ファイル:止めるのはCloudSecureだけ

「/wp-config.php」へのアクセスを403で止める機能があるのは、4つのうちCloudSecureだけでした。wp-config.phpはPHPとして動くので、ほかの3つでも、開くと中身は表示されず、真っ白なページ(200)でした。

バージョン:フィードまで消すのはReally Simple Securityだけ

Really Simple Securityの「WordPress のバージョンを隠す」は、RSSフィードからもバージョンを消しました。XO Securityの「バージョン情報の削除」は、ページのHTMLからは消えますが、フィードには残ったままでした。

バージョンを隠しても、古いバージョンのままなら意味がありません。

どれを選ぶか

止め方の違いで、もう1つ大事なのがREST APIです。プラグインのコードを見ると、CloudSecureとSiteGuardの「REST API無効化」は、ログインしていない人に対してREST API全体を止めます(Contact Form 7など、初期設定で除外されているものを除く)。REST APIを使うフォームやプラグインは、除外の設定に足さないと動かなくなります。XO SecurityとReally Simple Securityは、ユーザーの一覧(/wp/v2/users)だけを止められます。

選ぶときは、次のように考えます。

こんなとき 向いているプラグイン
設定に時間をかけず、入れただけである程度守りたい CloudSecure WP Security
ログインURLの変更を中心に、長く使われているものを選びたい SiteGuard WP Plugin
止める機能を1つずつ選びたい。REST APIも必要な部分だけ止めたい XO Security
SSLの設定やセキュリティヘッダーも1つで管理したい Really Simple Security

同じ役割のプラグインを2つ入れると、ログインURLの変更などがぶつかることがあります。CloudSecure WP Securityでログインできなくなったときの戻し方は、こちらで紹介しています。

それぞれの詳しい使い方は、こちらの記事で紹介しています。

まとめ

入れたら設定画面を一度開き、ユーザー名、XML-RPC、ログインURLの3つが止まる設定になっているかを確かめます。そのあと、外からもう一度開いて、本当に止まったかを見ておきます。

ほかの対策は、こちらの記事でまとめています。

世界最高品質のデザインの
WordPressテーマ集
WordPressテーマ「ISSUE」
WordPressテーマ「ISSUE」
人材不足を解決する求人採用サイトを。
WordPressテーマ「SEEED」
WordPressテーマ「SEEED」
Webサービスを販売するLP型テーマ。
WordPressテーマ「GENESIS」
WordPressテーマ「GENESIS」
スタイリッシュな企業サイトの決定版。
WordPressテーマ「SOLARIS」
WordPressテーマ「SOLARIS」
一流の企業のための一流の企業サイトを。