デフォルト設定(初期状態)のままのWordPressサイトでは、ユーザー名が漏えいしている可能性があります。そのまま放置していると、不正ログインのリスクが高まります。
そこで当記事では、見落としやすい3つのリスク(ログインページ、投稿者情報、REST API)と対策をご紹介します。
目次
デフォルト設定で漏れやすい情報
WordPressサイトはデフォルト設定のままだと、以下の情報を誰でも確認できます。セキュリティ的には好ましくない状態です。
- ログインページの存在(/wp-login.php)
- 投稿者ページのURL(/?author=1)
- REST API経由で取得できるユーザー情報(/wp-json/wp/v2/users)
これらの情報は、漏えいしていることを見落としやすい部分でもあり、不正ログインやアクセスの入り口になり得ます。次のセクションで、確認方法と対策を詳しく解説します。
ログインページ(/wp-login.php)
デフォルト設定のWordPressでは、ログインページに誰でもアクセス可能です。
試しに、あなたのWordPressサイトのURLの末尾に「/wp-login.php」と書いてアクセスしてみてください。表示された場合は、ログインページが公開されていることになります。
リスク
悪意のあるユーザーは、このページに総当たり攻撃を仕掛け、ログイン情報を推測しようとしてきます。
ログインページが公開されていると、あらゆるパターンのユーザー名やパスワードを総当たりで試されるリスクがあるということです。
対策
対策 | 内容 |
---|---|
ログインURLを変更する | 「WPS Hide Login」などのプラグインで/wp-login.phpを別のURLに変更して、そもそもログインページを表示させない。 |
ログイン試行制限 | 「Limit Login Attempts Reloaded」などのプラグインで、一定回数以上の失敗をブロックする。 |
2段階認証を導入 | 「Google Authenticator」などのプラグインで、パスワードが破られてもアカウントを保護する。 |
一番上のログインURLを変更する対策がおすすめです。これだけで十分効果があります。
WordPressでは、「サイトのURL/?author=1」にアクセスすると、ユーザー名を確認できてしまいます。あなたのサイトでも確認してみてください。
リスク
ユーザー名が漏れていると、パスワードを総当たりすればいいだけなので、不正ログインのリスクが圧倒的に高まってしまいます。
対策
対策 | 内容 |
---|---|
ユーザー名を隠す | 「Edit Author Slug」などのプラグインで、投稿者ページのURLを変更してユーザー名を表示させない。 |
投稿者アーカイブを無効化 | functions.phpにコードを追加して、/?author=1などのアクセスをリダイレクトまたは404にする。 |
初心者の方は、前者のプラグインがおすすめです。安全かつかんたんに対策できます。
REST APIのユーザー情報(/wp-json/wp/v2/users)
WordPressのREST APIを利用すると、ログインしていない状態でもユーザー情報を取得できてしまいます。
「あなたのサイトのURL/wp-json/wp/v2/users」にアクセスすると、文字や記号がずらっと並んで表示され、情報が公開されていることがわかります。
リスク
REST API経由でユーザー情報が漏れていると、サイトに登録されているすべてのユーザー名が確認できてしまいます。これらを元に、パスワード総当たり攻撃や不正ログインを試される危険性があるわけです。
対策
REST API経由で取得できるユーザー情報を制限する機能は、多くのセキュリティ系プラグインに備わっています。次のプラグインを試してみてください。

WordPressサイトを運営するうえで、セキュリティ対策は欠かせない要素のひとつ。特に、管理画面への不正アクセスやログインページへの攻撃は後を絶ちません。 そんな中、注目を集めているのが、セキュリティプラグイン「CloudSecure WP Security(クラウドセキュアWPセキュリティ...

WordPress(ワードプレス)のセキュリティ対策プラグインとして注目されている「XO Security(エックスオー・セキュリティ)」。 本記事では、XO Securityの基本的な使い方から設定方法、ログインページの変更、ログイントラブルの対処法まで、初心者にもわかりやすく解説します。 ...
もしあなたが中級者以上なら、functions.phpに下記を追加するだけでも対策できます。テーマファイルを直接編集せずに済むので、プラグイン(Code Snippets)を使うのがおすすめです。
add_filter( 'rest_endpoints', function( $endpoints ){
if ( isset( $endpoints['/wp/v2/users'] ) ) {
unset( $endpoints['/wp/v2/users'] );
}
return $endpoints;
});
まとめ
デフォルト設定のWordPressサイトでは、ユーザー名が外部に公開されている上に、誰でもログインページにアクセスできます。
そのままでは不正ログインの標的にもなりやすいですが、対策はシンプルです。
- ログインページ(/wp-login.php)のURLを変更したり、ログイン試行制限や二段階認証を導入する
- 投稿者ページ(/?author=1)のユーザー名を隠したり、投稿者アーカイブを無効化する
- REST API(/wp-json/wp/v2/users)で公開されているユーザー情報を制限する
それぞれプラグインでかんたんに対応できますし、中級者以上ならfunctions.phpやCode Snippetsを使って、細かく制御することも可能です。
少しの工夫で、WordPressデフォルト設定に潜むセキュリティリスクを大幅に減らせます。
ぜひ試してみてください。
WordPressテーマ集
コメント